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

时间:2013-01-06 06:33:47

标签: python numpy installation scipy

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

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

4 个答案:

答案 0 :(得分:41)

您不需要root权限即可在主目录中安装软件包。您可以使用

等命令执行此操作
pip install --user numpy

或来自消息来源

python setup.py install --user

请参阅https://stackoverflow.com/a/7143496/284795


第一种选择更方便,所以如果服务器没有pipeasy_install,你应该礼貌地要求管理员添加它,向他们解释好处(他们赢了'因个别包裹的要求而不再烦恼。

答案 1 :(得分:11)

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

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

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

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

  1. here下载virtualenv,将其放在您的群集上

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

    python setup.py build
    python setup.py install --install-base /path/to/local-site-packages
    
  3. 将该目录添加到您的PYTHONPATH:

    export PYTHONPATH="/path/to/local-site-packages:${PYTHONPATH}"
    
  4. 创建virtualenv:

    virtualenv venv
    

答案 2 :(得分:1)

您可以通过调用以下方法从任意路径导入模块:

sys.path.append()

答案 3 :(得分:1)

Python Distribution Anaconda解决了这个问题中讨论的许多问题。 Anaconda不需要管理员或root访问权限,并且可以安装到您的主目录。 Anaconda附带了许多有问题的软件包(scipy,numpy,sklearn等等)以及conda安装程序,如果需要额外的软件包,还需要安装额外的软件包。

可以从https://www.continuum.io/downloads

下载