HyperDex icon indicating copy to clipboard operation
HyperDex copied to clipboard

Install Python client from PIP

Open santiagobasulto opened this issue 11 years ago • 10 comments
trafficstars

As I'm seeing the python client is tightly coupled to the whole project. It'd be nice to install it through PIP (pypi). There's other related issue for node.js as well: #160.

This raise my question. Is there any communication layer you're planning to build? Something like Thrift or similar?

santiagobasulto avatar Jul 29 '14 12:07 santiagobasulto

We do plan to add support for installing the Python client through pypi.

As for a communication layer, we don't have any plans to add one as it would quite literally be no more efficient than writing a program to proxy thrift calls through the existing client library. If someone writes such a module, we would consider incorporating it.

rescrv avatar Jul 29 '14 16:07 rescrv

Any progress here. Frustrated trying to use python client hyperdex with Python3. No easy install path for that

SmithSamuelM avatar Dec 04 '15 00:12 SmithSamuelM

If you do ./configure --disable-all-components --enable-client --enable-python-bindings PYTHON=/path/to/python3 with the latest Git code, you can install Python3 bindings.

rescrv avatar Dec 04 '15 19:12 rescrv

Do I have to install all the dependencies from the latest hyperdex github repo as in busybee, replicant, hyperleveldb?

SmithSamuelM avatar Dec 04 '15 21:12 SmithSamuelM

There is no ./configure in the repo. I tried running autoconf

$ autoconf configure.ac:12: error: possibly undefined macro: AM_INIT_AUTOMAKE If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. configure.ac:14: error: possibly undefined macro: AM_PATH_PYTHON configure.ac:28: error: possibly undefined macro: AM_CONDITIONAL configure.ac:62: error: possibly undefined macro: AC_PROG_JAR configure.ac:63: error: possibly undefined macro: AC_PROG_JAVAC configure.ac:64: error: possibly undefined macro: AC_JNI_INCLUDE_DIR configure.ac:194: error: possibly undefined macro: AC_PYTHON_DEVEL

The resulting configure script fails

$ ./configure --disable-all-components --enable-client --enable-python-bindings PYTHON=/usr/local/bin/python3 ./configure: line 2426: syntax error near unexpected token foreign' ./configure: line 2426:AM_INIT_AUTOMAKE(foreign'

Some more guidance would be most helpful. Apparently you are able to build it from source on OS X. How about a command line summary of how you build it.

I installed all the dependencies with home-brew

SmithSamuelM avatar Dec 04 '15 22:12 SmithSamuelM

This is what I did.

$ brew install busybee
$ brew install hyperleveldb
$ brew install replicant

$ git clone https://github.com/rescrv/HyperDex.git
$ cd HyperDex

$ autoconf
configure.ac:12: error: possibly undefined macro: AM_INIT_AUTOMAKE
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
configure.ac:14: error: possibly undefined macro: AM_PATH_PYTHON
configure.ac:28: error: possibly undefined macro: AM_CONDITIONAL
configure.ac:62: error: possibly undefined macro: AC_PROG_JAR
configure.ac:63: error: possibly undefined macro: AC_PROG_JAVAC
configure.ac:64: error: possibly undefined macro: AC_JNI_INCLUDE_DIR
configure.ac:194: error: possibly undefined macro: AC_PYTHON_DEVEL


$ ./configure --disable-all-components --enable-client --enable-python-bindings PYTHON=/usr/local/bin/python3

./configure: line 2426: syntax error near unexpected token `foreign'
./configure: line 2426: `AM_INIT_AUTOMAKE(foreign'

SmithSamuelM avatar Dec 04 '15 22:12 SmithSamuelM

BTW: See this issue https://github.com/rescrv/HyperDex/issues/227 but even the python2 bindings do not work when installed from home-brew. So essentially Hyperdex python is broken for OS X.

I have a project that I am evaluating Hyperdex for with a short fuse, I need asynchronous python bindings because our app architecture uses asynchronous io in python. CouchDB will work because of its rest interface but I was really impressed by the Hyperdex clustering support as a step up, but looks like its just not ready for prime time yet.

SmithSamuelM avatar Dec 05 '15 00:12 SmithSamuelM

Any help would be appreciated. Anyone able to build hyperdex with python bindings on OS X ElCapitain?

SmithSamuelM avatar Dec 07 '15 17:12 SmithSamuelM

For most of its existence, HyperDex was developed by just a single person, me. In that time, I've gotten divorced from my spouse of nearly a decade, was nearly bankrupted by the process, and remained a full-time PhD student. All the while, people compare HyperDex to projects with dozens to hundreds of developers (often backed by companies with cash to burn), and think that it's "just not ready for prime time" because of issues.

I'm sorry for the rant, but I don't do any development on OS X, and haven't been able to keep up with the changes they keep making to homebrew or the underlying development environment. The error you have above stems from not having automake installed. Can you try installing it? Also, I'd recommend running "autoreconf -i" instead of manually running the autoconf/automake commands.

rescrv avatar Dec 12 '15 23:12 rescrv

I appreciate your rant. It is helpful to know that your team is so small. I thought otherwise given the web pages description of the extensiveness of the API interfaces etc. I would like to help out. If you could provide a command line log of how you build it from source on OS X the last time you make it work I will try to see if I can figure out how to make it work given the latest version of OS X. I will try the autoreconf -i.. I do have automake installed. $ which automake /usr/local/bin/automake So there is something else we are missing?

You are to be commended. The hyper-hash concept is fantastic.

SmithSamuelM avatar Dec 14 '15 18:12 SmithSamuelM