pip install自定义包含路径

时间:2013-09-28 21:10:53

标签: python installation install pip

我正在尝试安装库pyleargist。它需要手动安装另一个我已安装的lib libfftw3。由于我没有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应该已经将文件下载到某个地方,但不确定它在哪里)。 / p>

所以我的问题如下:1)在这种特殊情况下,如何在pyleargist下使用includelib路径安装~/usr? 2)更一般地说,如何为pip提供额外的路径,以便它知道在默认路径中找不到其他包含文件或库的位置?

p.s我在没有ubuntu权限的sudo计算机上。

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

3 个答案:

答案 0 :(得分:21)

pip有一个--global-option标记

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

例如,添加-I标志:

pip install --global-option=build_ext --global-option="-I/home/users/abc/include/" pyOpenSSL

答案 1 :(得分:0)

如果你没有root,你可以得到一个virtual enviroment根本不需要根,你的路径就在家里

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']
>>> 

答案 2 :(得分:0)

这是一个有用的主题。只是为了补充一点,如果你在最后传递--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