【问题标题】:pip install customized include pathpip install 自定义包含路径
【发布时间】:2013-10-04 23:41:59
【问题描述】:

我正在尝试安装库pyleargist。它需要手动安装我已经安装的另一个库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 应该在某处下载了该文件,但不确定它在哪里)。

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

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

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

【问题讨论】:

  • 你过得怎么样?你在 ~/usr/.. 中有所有缺少的依赖项吗?您那里获得的版本是否与系统上安装的依赖项兼容?
  • @drevicko 是的。只有依赖,我把它放在~/usr/。它们是兼​​容的。我知道它是因为我可以将它安装在我拥有sudo 权限的其他机器上。
  • 产生错误的gcc 命令是什么?还有leargist.c 的位置以及它是否存在于您的~/usr/ 或其他地方?

标签: python installation pip


【解决方案1】:

pip 有一个 --global-option 标志

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

例如,添加-I 标志:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      如果你没有root,你可以得到virtual enviroment,不需要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']
      >>> 
      

      【讨论】:

        猜你喜欢
        • 2020-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-08
        • 1970-01-01
        • 1970-01-01
        • 2021-06-03
        • 1970-01-01
        相关资源
        最近更新 更多