【问题标题】:Installing a python package/tool by a non root user由非 root 用户安装 python 包/工具
【发布时间】:2012-05-01 11:26:25
【问题描述】:

(1) 我必须安装一个 python 包 (HTSeq) 但我没有 root 权限。

该软件包需要 python 2.4 或最新版本。我们的集群上有 python 2.3。

因此我在我的一个本地目录上安装了 python 2.7 使用

./configure --prefix=/home/amit/tools/localpython 
make 
make install

(2) 该软件包还需要 numpy :所以我还使用以下方法将它安装在我的本地目录中:

/home/amit/tools/localpython/bin/python2.7 setup.py install --home=/home/amit/tools/localnumpy 

完成

>>> sys.path.append("/home/amit/tools/localnumpy/lib/")

(3) 我下载了 HTSeq 的 tar 文件(我想下载)并运行

/home/amit/tools/localpython/bin/python2.7 setup.py install --home=/home/amit/tools/localhtseq

它抛出以下错误:

Could not import 'setuptools',
falling back to 'distutils'.
Setup script for HTSeq: Failed to import 'numpy'.
Please install numpy and then try again to install HTSeq.

请给我一些关于如何克服它的提示

提前致谢

【问题讨论】:

    标签: python setuptools


    【解决方案1】:

    Setuptools 是安装该软件包所需的另一个要求。

    一种选择是使用 virtualenv 创建一个包含的 python 环境。这可以在任何地方制作,并且归创建它的用户所有。

    在没有管理员权限的情况下安装 virtualenv(来自this answer):

    下载最新版virtualenv的tar.gz。 打开包装。 你甚至不需要安装它,只需运行 virtualenv.py,例如:

    wget http://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.7.1.2.tar.gz
    tar -xzf virtualenv-1.7.1.2.tar.gz
    /home/amit/tools/localpython/bin/python2.7 virtualenv-1.7.1.2/virtualenv.py env
    
    env/bin/pip install HTSeq
    env/bin/pip install numpy
    

    现在在虚拟环境中使用 python 二进制文件运行您的脚本:

    env/bin/python myscript.py
    

    【讨论】:

    • 感谢 Jasper Van den Bosch,我会尝试使用 virtualenv(在谷歌搜索后),因为我不知道这一点,如果我遇到任何问题,我会告诉你
    • 好的,我已经添加了一些命令,告诉我它是如何工作的!
    • 亲爱的 Jasper,它的工作...我安装了这两个包,现在在终端上的当前 python 2.7 会话中导入了 HTseq。谢谢
    • 如果您打算使用 virtualenv(绝对推荐),您应该查看virtualenvwrapper,它使使用大量 virtualenv 变得简单。
    【解决方案2】:

    1) 您必须安装setuptools(必须运行您的 HTSeq 的 setup.py)。

    下载源代码tar.gz setuptools-0.6c11.tar.gz,解压,然后像安装python2.7一样执行步骤,但在解压setuptools源代码的文件夹中:

    ./configure --prefix=/home/amit/tools/localpython 
    make 
    make install
    

    2) 当您安装 setuptools 时,easy_install 可执行文件将出现在 python2.7/scripts/ 文件夹中。您可以使用它轻松安装软件包:

    /home/amit/tools/localpython/bin/python2.7/scripts/easy_install HTSeq
    

    它会自动找到包并为你下载并安装它以及所有依赖项。

    【讨论】:

    • 感谢 SergeanT,但很抱歉再次打扰您 - 当我在终端上键入 python 时,它会自动使用旧的 python 版本(2.3)。我必须使用 python 2.7。所以当我运行 sh sh setuptools-0.6c11-py2.7.egg 时会出现错误: setuptools-0.6c11-py2.7.egg: line 3: exec: python2.7: not found
    • 最好从源安装setuptools(使用tar.gz链接),然后像安装python2.7一样做所有事情(./configure --prefix=...makemake install。我已经更新了我的用这些步骤回答。
    猜你喜欢
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    • 2011-05-01
    • 1970-01-01
    • 2018-02-03
    • 2012-09-05
    • 2016-10-18
    相关资源
    最近更新 更多