rescrv / HyperDex

HyperDex is a scalable, searchable key-value store
http://hyperdex.org
BSD 3-Clause "New" or "Revised" License
1.4k stars 166 forks source link

Install Python client from PIP #173

Open santiagobasulto opened 10 years ago

santiagobasulto commented 10 years ago

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?

rescrv commented 10 years ago

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.

SmithSamuelM commented 8 years ago

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

rescrv commented 8 years ago

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.

SmithSamuelM commented 8 years ago

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

SmithSamuelM commented 8 years ago

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 commented 8 years ago

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 commented 8 years ago

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 commented 8 years ago

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

rescrv commented 8 years ago

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.

SmithSamuelM commented 8 years ago

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.