关于numpy:如何安装没有root权限的python包?

How to install python packages without root privileges?

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

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


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

1
pip install --user numpy

或来自消息来源

1
python setup.py install --user

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

第一种选择更方便,所以如果服务器没有pipeasy_install,你应该礼貌地要求管理员添加它,向他们解释好处(他们不会再受到请求的困扰)个别包裹)。


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

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

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

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

  • 从这里下载virtualenv,把它放在你的集群上

  • 使用setup.py将其安装到特定的本地目录以充当您自己的站点包:

    1
    2
    python setup.py build
    python setup.py install --install-base /path/to/local-site-packages
  • 将该目录添加到PYTHONPATH:

    1
    export PYTHONPATH="/path/to/local-site-packages:${PYTHONPATH}"
  • 创建一个virtualenv:

    1
    virtualenv venv

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

    它可以从https://www.continuum.io/downloads下载


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

    sys.path.append()