我正在使用numpy
/ scipy
/ pynest
在Mac OS X上进行一些研究计算。为了提高性能,我们从我们的大学租用了400个节点的群集(使用Linux)这样任务就可以并行完成。问题是我们不允许在集群上安装任何额外的软件包(没有sudo
或任何安装工具),它们只提供原始python本身。
如何在群集上运行我的脚本呢?有没有办法集成模块(我认为numpy和scipy也有一些已编译的二进制文件),以便在不安装软件包的情况下解释和执行它?
答案 0 :(得分:41)
您不需要root权限即可在主目录中安装软件包。您可以使用
等命令执行此操作pip install --user numpy
或来自消息来源
python setup.py install --user
请参阅https://stackoverflow.com/a/7143496/284795
第一种选择更方便,所以如果服务器没有pip
或easy_install
,你应该礼貌地要求管理员添加它,向他们解释好处(他们赢了'因个别包裹的要求而不再烦恼。
答案 1 :(得分:11)
您可以通过virtualenv包创建虚拟环境。
这将创建一个文件夹(比如venv
),其中包含Python可执行文件的新副本和新的site-packages
目录,您可以在其中“安装”任意数量的包,而无需任何管理完全访问。因此,通过source venv/bin/activate
激活环境将为Python提供一个与安装这些软件包相当的环境。
我知道这适用于SGE群集,但虚拟环境的激活方式可能取决于群集的配置。
您可以尝试使用以下步骤在您自己的site-packages目录中的群集上安装virtualenv
:
从here下载virtualenv,将其放在您的群集上
使用setup.py
将其安装到特定的本地目录,作为您自己的网站包:
python setup.py build
python setup.py install --install-base /path/to/local-site-packages
将该目录添加到您的PYTHONPATH:
export PYTHONPATH="/path/to/local-site-packages:${PYTHONPATH}"
创建virtualenv:
virtualenv venv
答案 2 :(得分:1)
您可以通过调用以下方法从任意路径导入模块:
sys.path.append()
答案 3 :(得分:1)
Python Distribution Anaconda解决了这个问题中讨论的许多问题。 Anaconda不需要管理员或root访问权限,并且可以安装到您的主目录。 Anaconda附带了许多有问题的软件包(scipy,numpy,sklearn等等)以及conda安装程序,如果需要额外的软件包,还需要安装额外的软件包。
下载