如何安装没有root权限的python包?

Sky*_*ler 32 python installation numpy scipy

我正在使用numpyscipy/ pynest在Mac OS X上进行一些研究计算.为了提高性能,我们从我们大学租用了一个400节点的集群(带有Linux),以便可以并行完成任务.问题是我们不允许在集群上安装任何额外的软件包(没有sudo或任何安装工具),它们只提供原始python本身.

如何在群集上运行我的脚本呢?有没有办法集成模块(numpy和scipy也有一些我认为编译的二进制文件),以便它可以解释和执行而无需安装包?

Col*_*nic 41

您不需要root权限即可在主目录中安装软件包.您可以使用诸如此类的命令来执行此操作

pip install --user numpy
Run Code Online (Sandbox Code Playgroud)

或来自消息来源

python setup.py install --user
Run Code Online (Sandbox Code Playgroud)

请参阅/sf/answers/500044751/


第一种选择更方便,所以如果服务器没有pip或者easy_install,你应该礼貌地要求管理员添加它,向他们解释好处(他们不会再被单个包的请求打扰).

  • **礼貌地要求管理员添加它**,为什么我没想到呢!天哪,我们太棒了... (8认同)
  • @Skyler:要求管理员绝对是*最好的选择!基于你的问题,我认为他们可能会反对它.(我还是建议使用virtualenvs一旦安装了PIP,顺带也可以作为对[你这个的其他问题]溶液(http://stackoverflow.com/questions/14117945/too-many-different-python-versions -on-我的系统和致病-问题)). (3认同)

Dav*_*son 11

您可以通过virtualenv包创建虚拟环境.

这会创建一个文件夹(比如说venv),其中包含Python可执行文件的新副本和一个新site-packages目录,您可以在其中"安装"任意数量的包,而无需任何类型的管理访问.因此,通过激活环境source venv/bin/activate将为Python提供一个与安装这些软件包相当的环境.

我知道这适用于SGE集群,但虚拟环境的激活方式可能取决于集群的配置.

您可以尝试virtualenv使用以下步骤在您自己的site-packages目录中的群集上进行安装:

  1. 这里下载virtualenv ,把它放在你的集群上

  2. 使用它安装setup.py到特定的本地目录作为您自己的站点包:

    python setup.py build
    python setup.py install --install-base /path/to/local-site-packages
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将该目录添加到PYTHONPATH:

    export PYTHONPATH="/path/to/local-site-packages:${PYTHONPATH}"
    
    Run Code Online (Sandbox Code Playgroud)
  4. 创建一个virtualenv:

    virtualenv venv
    
    Run Code Online (Sandbox Code Playgroud)

  • @Skyler:抱歉 - 尝试用`--home`替换`--install-base` (2认同)