axiak / pybloomfiltermmap

Fast Python Bloom Filter using Mmap
http://axiak.github.com/pybloomfiltermmap/
MIT License
739 stars 137 forks source link

0.3.12 pypi package is broken #48

Closed andresriancho closed 10 years ago

andresriancho commented 10 years ago

I'm not being able to install the latest pybloomfiltermmap (0.3.12) from pypi, but installation works using python setup.py install.

Installation fails using pip:

(pybloomfiltermmap)andres@eug:~/PycharmProjects/virtual-envs/pybloomfiltermmap$ pip install --upgrade pybloomfiltermmap==0.3.12
Downloading/unpacking pybloomfiltermmap==0.3.12
  Downloading pybloomfiltermmap-0.3.12.tar.gz (409kB): 409kB downloaded
  Running setup.py egg_info for package pybloomfiltermmap
    info: Building from C

Installing collected packages: pybloomfiltermmap
  Running setup.py install for pybloomfiltermmap
    info: Building from C
    building 'pybloomfilter' extension
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/mmapbitarray.c -o build/temp.linux-x86_64-2.7/src/mmapbitarray.o
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/bloomfilter.c -o build/temp.linux-x86_64-2.7/src/bloomfilter.o
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/md5.c -o build/temp.linux-x86_64-2.7/src/md5.o
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/primetester.c -o build/temp.linux-x86_64-2.7/src/primetester.o
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/MurmurHash3.cpp -o build/temp.linux-x86_64-2.7/src/MurmurHash3.o
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for Ada/C/ObjC but not for C++ [enabled by default]
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/pybloomfilter.c -o build/temp.linux-x86_64-2.7/src/pybloomfilter.o
    gcc: error: src/pybloomfilter.c: No such file or directory
    gcc: fatal error: no input files
    compilation terminated.
    error: command 'gcc' failed with exit status 4
    Complete output from command /home/andres/pch/virtual-envs/pybloomfiltermmap/bin/python2.7 -c "import setuptools;__file__='/home/andres/PycharmProjects/virtual-envs/pybloomfiltermmap/build/pybloomfiltermmap/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-nRxrrc-record/install-record.txt --single-version-externally-managed --install-headers /home/andres/pch/virtual-envs/pybloomfiltermmap/include/site/python2.7:
    info: Building from C

running install

running build

running build_ext

building 'pybloomfilter' extension

creating build

creating build/temp.linux-x86_64-2.7

creating build/temp.linux-x86_64-2.7/src

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/mmapbitarray.c -o build/temp.linux-x86_64-2.7/src/mmapbitarray.o

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/bloomfilter.c -o build/temp.linux-x86_64-2.7/src/bloomfilter.o

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/md5.c -o build/temp.linux-x86_64-2.7/src/md5.o

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/primetester.c -o build/temp.linux-x86_64-2.7/src/primetester.o

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/MurmurHash3.cpp -o build/temp.linux-x86_64-2.7/src/MurmurHash3.o

cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for Ada/C/ObjC but not for C++ [enabled by default]

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/pybloomfilter.c -o build/temp.linux-x86_64-2.7/src/pybloomfilter.o

gcc: error: src/pybloomfilter.c: No such file or directory

gcc: fatal error: no input files

compilation terminated.

error: command 'gcc' failed with exit status 4

----------------------------------------
Cleaning up...
Command /home/andres/pch/virtual-envs/pybloomfiltermmap/bin/python2.7 -c "import setuptools;__file__='/home/andres/PycharmProjects/virtual-envs/pybloomfiltermmap/build/pybloomfiltermmap/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-nRxrrc-record/install-record.txt --single-version-externally-managed --install-headers /home/andres/pch/virtual-envs/pybloomfiltermmap/include/site/python2.7 failed with error code 1 in /home/andres/PycharmProjects/virtual-envs/pybloomfiltermmap/build/pybloomfiltermmap
Traceback (most recent call last):
  File "/home/andres/pch/virtual-envs/pybloomfiltermmap/bin/pip", line 9, in <module>
    load_entry_point('pip==1.4.1', 'console_scripts', 'pip')()
  File "/home/andres/pch/virtual-envs/pybloomfiltermmap/local/lib/python2.7/site-packages/pip/__init__.py", line 148, in main
    return command.main(args[1:], options)
  File "/home/andres/pch/virtual-envs/pybloomfiltermmap/local/lib/python2.7/site-packages/pip/basecommand.py", line 169, in main
    text = '\n'.join(complete_log)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 42: ordinal not in range(128)
(pybloomfiltermmap)andres@eug:~/PycharmProjects/virtual-envs/pybloomfiltermmap$ find . -name pybloom*
(pybloomfiltermmap)andres@eug:~/PycharmProjects/virtual-envs/pybloomfiltermmap$

Installation works using python setup.py install:

(pybloomfiltermmap)andres@eug:~/PycharmProjects/pybloomfiltermmap$ git checkout release/0.3.12
...
HEAD is now at 57bcd82... Publish 0.3.12
(pybloomfiltermmap)andres@eug:~/PycharmProjects/pybloomfiltermmap$ python setup.py install
info: Building from C
running install
running bdist_egg
running egg_info
writing pybloomfiltermmap.egg-info/PKG-INFO
writing top-level names to pybloomfiltermmap.egg-info/top_level.txt
writing dependency_links to pybloomfiltermmap.egg-info/dependency_links.txt
reading manifest file 'pybloomfiltermmap.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'pybloomfiltermmap.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_ext
building 'pybloomfilter' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/mmapbitarray.c -o build/temp.linux-x86_64-2.7/src/mmapbitarray.o
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/bloomfilter.c -o build/temp.linux-x86_64-2.7/src/bloomfilter.o
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/md5.c -o build/temp.linux-x86_64-2.7/src/md5.o
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/primetester.c -o build/temp.linux-x86_64-2.7/src/primetester.o
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/MurmurHash3.cpp -o build/temp.linux-x86_64-2.7/src/MurmurHash3.o
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for Ada/C/ObjC but not for C++ [enabled by default]
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/pybloomfilter.c -o build/temp.linux-x86_64-2.7/src/pybloomfilter.o
In file included from src/pybloomfilter.c:348:0:
/usr/include/python2.7/pythread.h:5:1: warning: ‘always_inline’ attribute ignored [-Wattributes]
src/pybloomfilter.c:828:1: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-x86_64-2.7/src/mmapbitarray.o build/temp.linux-x86_64-2.7/src/bloomfilter.o build/temp.linux-x86_64-2.7/src/md5.o build/temp.linux-x86_64-2.7/src/primetester.o build/temp.linux-x86_64-2.7/src/MurmurHash3.o build/temp.linux-x86_64-2.7/src/pybloomfilter.o -lcrypto -o build/lib.linux-x86_64-2.7/pybloomfilter.so
creating build/bdist.linux-x86_64/egg
copying build/lib.linux-x86_64-2.7/pybloomfilter.so -> build/bdist.linux-x86_64/egg
creating stub loader for pybloomfilter.so
byte-compiling build/bdist.linux-x86_64/egg/pybloomfilter.py to pybloomfilter.pyc
creating build/bdist.linux-x86_64/egg/EGG-INFO
copying pybloomfiltermmap.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copying pybloomfiltermmap.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying pybloomfiltermmap.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying pybloomfiltermmap.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
writing build/bdist.linux-x86_64/egg/EGG-INFO/native_libs.txt
zip_safe flag not set; analyzing archive contents...
creating 'dist/pybloomfiltermmap-0.3.12-py2.7-linux-x86_64.egg' and adding 'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing pybloomfiltermmap-0.3.12-py2.7-linux-x86_64.egg
Copying pybloomfiltermmap-0.3.12-py2.7-linux-x86_64.egg to /home/andres/PycharmProjects/virtual-envs/pybloomfiltermmap/lib/python2.7/site-packages
Adding pybloomfiltermmap 0.3.12 to easy-install.pth file

Installed /home/andres/PycharmProjects/virtual-envs/pybloomfiltermmap/lib/python2.7/site-packages/pybloomfiltermmap-0.3.12-py2.7-linux-x86_64.egg
Processing dependencies for pybloomfiltermmap==0.3.12
Finished processing dependencies for pybloomfiltermmap==0.3.12
(pybloomfiltermmap)andres@eug:~/PycharmProjects/pybloomfiltermmap$ 

First I thought this was the issue reported here https://github.com/axiak/pybloomfiltermmap/issues/29 , but I don't have Cython installed, thus the unlink lines are never executed in my environment.

I've downloaded the pybloomfiltermmap-0.3.12.tar.gz file from pypi, decompressed it and tried to find the pybloomfilter.c file inside. It's not there. It might be the case that you're renaming another file... but it is unlikely... most likely a bug in your setup.py that's forgetting to add the most important file :-1:

andresriancho commented 10 years ago

Anyone could confirm this?

axiak commented 10 years ago

Try 0.3.14

andresriancho commented 10 years ago

That worked in my ubuntu 12.04 LTS. Thanks!