32

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

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

4

4 回答 4

43

You don't need root privileges to install packages in your home directory. You can do that with a command such as

pip install --user numpy

or from source

python setup.py install --user

See https://stackoverflow.com/a/7143496/284795


The first alternative is much more convenient, so if the server doesn't have pip or easy_install, you should politely ask the admins to add it, explaining the benefit to them (they won't be bothered anymore by requests for individual packages).

于 2013-01-06T14:39:32.653 回答
12

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

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

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

您可以尝试virtualenv使用以下步骤在您自己的站点包目录中的集群上安装:

  1. 从这里下载 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 venv
    
于 2013-01-06T06:39:11.097 回答
1

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

sys.path.append()

于 2014-01-13T04:46:25.913 回答
1

Python Distribution Anaconda 解决了这个问题中讨论的许多问题。Anaconda 不需要管理员或 root 访问权限,并且能够安装到您的主目录。Anaconda 附带了许多有问题的软件包(scipy、numpy、sklearn 等)以及 conda 安装程序,用于在需要其他软件包时安装其他软件包。

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

于 2015-12-02T02:46:15.063 回答