19

我正在尝试安装一个库pyleargistlibfftw3它需要手动安装我已经安装的另一个库。由于我没有root权限,所以我必须安装libfftw3在我的主目录下:~/usr/include~/usr/lib. 然后我关注这篇文章:https://superuser.com/questions/242190/how-to-install-matplotlib-on-os-x,添加:

export LDFLAGS="-L~/usr/lib"
export CFLAGS="-I~/usr/include 

所以它pip知道它必须咨询/usr以获取包含(.h 文件)和 lib( .a、*.so 文件)。但是,在运行时pip install --user pyleargist,它抱怨:

gcc-4.4.real: src/leargist.c: No such file or directory
gcc-4.4.real: no input files
error: command 'gcc' failed with exit status 1

我猜发生的事情是路径不正确,因此找不到*.c文件(我认为pip应该在某处下载文件但不确定它在哪里)。

所以我的问题如下:1)在这种特殊情况下,我如何安装和pyleargist路径下?2)更一般地说,如果在默认路径中找不到,如何提供额外的路径以便它知道从哪里获取额外的包含文件或库?includelib~/usrpip

ps 我在ubuntu没有sudo特权的机器上。

参考:
https ://pypi.python.org/pypi/pyleargist/1.0.1
http://www.fftw.org/

4

3 回答 3

27

pip--global-option一面旗帜

您可以使用它将其他标志传递给build_ext.

例如,添加一个-I标志:

pip install --global-option=build_ext --global-option="-I/home/users/abc/include/" pyOpenSSL
于 2015-03-11T08:06:49.547 回答
1

这是一个有用的线程。只是为了补充一点,如果你--user在最后传递标志,你也可以在没有 root 的情况下使用 pip:

pip install --global-option="-I/home/users/abc/include/" mpi4py --user

例如,如果您使用的是 python-v2.7,则上述命令会将 python 包安装到/home/username/.local/lib/python2.7/site-packages

于 2017-11-08T16:20:38.503 回答
0

如果你没有root,你可以获得一个虚拟环境,不需要root,你的路径将在家里

curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.10.1.tar.gz
tar xvfz virtualenv-1.10.1.tar.gz
cd virtualenv-1.10.1.tar.gz
python virtualenv.py myVE

然后你的路径设置在你的家里:

cd myVE/bin
./python

>>> import sys
>>> sys.path
['', '/home/foobar/temp/virtualenv-1.10.1/myVE/lib/python33.zip', '/home/foobar/temp/virtualenv-1.10.1/myVE/lib/python3.3', '/home/foobar/temp/virtualenv-1.10.1/myVE/lib/python3.3/plat-linux', '/home/foobar/temp/virtualenv-1.10.1/myVE/lib/python3.3/lib-dynload', '/usr/lib64/python3.3', '/usr/lib/python3.3', '/usr/lib/python3.3/plat-linux', '/home/foobar/temp/virtualenv-1.10.1/myVE/lib/python3.3/site-packages']
>>> 
于 2013-09-28T21:37:53.140 回答