Cannot pip install KDEpy on Ubuntu 16.04.1
luke-skywalker opened this issue · 3 comments
First things first, thank you for this amazing piece of work :)
As per title, I failed at pip installing KDEpy using pip on Ubuntu 16.04.1. Minimum system info follows.
$ uname -a
Linux #hostname# 4.15.0-43-generic #46~16.04.1-Ubuntu SMP Fri Dec 7 13:31:08 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ python3 --version
Python 3.5.2
To be sure it isn't something with my system configuration I did the following.
- I created a venv
$ mkdir /tmp/throwaway
$ python3 -m venv /tmp/throwaway
$ source /tmp/throwaway/bin/activate
- I updated pip and installed wheel
(throwaway) $ pip install --upgrade pip
(throwaway) $ pip install wheel
- I tried to pip install KDEpy
(throwaway) $ pip install kdepy
I put what I believe to be the relevant output, please ask for more info and I'd be happy to help!
creating build/temp.linux-x86_64-3.5/KDEpy
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/tmp/throwaway/include -I/usr/include/python3.5m -c KDEpy/cutils.c -o build/temp.linux-x86_64-3.5/KDEpy/cutils.o
KDEpy/cutils.c:4:20: fatal error: Python.h: No such file or directory
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
----------------------------------------
Failed building wheel for kdepy
Running setup.py clean for kdepy
Failed to build kdepy
Installing collected packages: numpy, scipy, six, cycler, kiwisolver, pyparsing, python-dateutil, matplotlib, kdepy
Running setup.py install for kdepy ... error
Complete output from command /tmp/throwaway/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-zk12zrwc/kdepy/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-mfnxe_0g/install-record.txt --single-version-externally-managed --compile --install-headers /tmp/throwaway/include/site/python3.5/kdepy:
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.5
creating build/lib.linux-x86_64-3.5/KDEpy
copying KDEpy/BaseKDE.py -> build/lib.linux-x86_64-3.5/KDEpy
copying KDEpy/FFTKDE.py -> build/lib.linux-x86_64-3.5/KDEpy
copying KDEpy/bw_selection.py -> build/lib.linux-x86_64-3.5/KDEpy
copying KDEpy/kernel_funcs.py -> build/lib.linux-x86_64-3.5/KDEpy
copying KDEpy/binning.py -> build/lib.linux-x86_64-3.5/KDEpy
copying KDEpy/__init__.py -> build/lib.linux-x86_64-3.5/KDEpy
copying KDEpy/utils.py -> build/lib.linux-x86_64-3.5/KDEpy
copying KDEpy/TreeKDE.py -> build/lib.linux-x86_64-3.5/KDEpy
copying KDEpy/NaiveKDE.py -> build/lib.linux-x86_64-3.5/KDEpy
running build_ext
building 'cutils' extension
creating build/temp.linux-x86_64-3.5
creating build/temp.linux-x86_64-3.5/KDEpy
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/tmp/throwaway/include -I/usr/include/python3.5m -c KDEpy/cutils.c -o build/temp.linux-x86_64-3.5/KDEpy/cutils.o
KDEpy/cutils.c:4:20: fatal error: Python.h: No such file or directory
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
----------------------------------------
Command "/tmp/throwaway/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-zk12zrwc/kdepy/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-mfnxe_0g/install-record.txt --single-version-externally-managed --compile --install-headers /tmp/throwaway/include/site/python3.5/kdepy" failed with error code 1 in /tmp/pip-install-zk12zrwc/kdepy/
Thanks for letting me know about this @luke-skywalker .The following works for me.
My machine
$ uname -a
Linux tommy-desktop 4.15.0-43-generic #46~16.04.1-Ubuntu SMP Fri Dec 7 13:31:08 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Create new environment, install KDEpy
$ conda create -n throwaway python=3.7 numpy scipy pytest cython setuptools wheel
$ conda activate throwaway
$ pip install KDEpy
$ python
>>> import KDEpy
>>> exit()
$ conda deactivate
Try the following.
- Make sure you have dependencies installed, i.e.
numpy scipy pytest cython setuptools wheel
, see requirements.txt for a full list. - If it's not on your system, run
sudo apt install libpython3.6-dev
.
@tommyod, thank you so much for your prompt reply!
sudo apt install libpython3.5-dev
solved it for me (I have Python 3.5.2 on my system).
All the other dependencies seem to be correctly handled by pip
. Thanks again for your help. I don't know if it might be worth mentioning in the installation instructions that Ubuntu might need the Python dev headers. Anyway, this solved it. Again, thank you!
Glad to hear @luke-skywalker . I've added a note about this in the README, in case others have trouble in the future too. May the force be with you.