2024-06-16 08:59:28 发布
网友
我正在用numpy/scipy/pynest在Mac OS X上做一些计算研究。为了提高性能,我们从我们大学租了一个400节点的集群(使用Linux),这样任务就可以并行完成。问题是我们不允许在集群上安装任何额外的包(没有sudo或任何安装工具),它们只提供原始的python本身。
numpy
scipy
pynest
sudo
那么我如何在集群上运行我的脚本呢?有没有办法集成这些模块(numpy和scipy也有一些编译过的二进制文件,我认为)以便在不安装包的情况下对其进行解释和执行?
您可以通过调用以下命令从任意路径导入模块:
sys.path.append()
可以通过virtualenv包创建虚拟环境。
这将创建一个文件夹(比如venv),其中包含Python可执行文件的新副本和一个新的site-packages目录,您可以在其中“安装”任意数量的包,而无需任何管理访问。因此,通过source venv/bin/activate激活环境将为Python提供一个与安装这些包等效的环境。
venv
site-packages
source venv/bin/activate
我知道这适用于SGE集群,不过虚拟环境的激活方式可能取决于集群的配置。
您可以尝试使用以下步骤在自己的站点包目录中的集群上安装virtualenv:
virtualenv
从here下载virtualenv,将其放到集群中
使用setup.py将其安装到特定的本地目录,作为您自己的网站包:
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
在主目录中安装包不需要根权限。你可以通过一个命令来完成,比如
pip install --user numpy
或来源
python setup.py install --user
见https://stackoverflow.com/a/7143496/284795
第一种选择更方便,因此如果服务器没有pip或easy_install,您应该礼貌地要求管理员添加它,并向他们解释其好处(他们不会再被个别包的请求所困扰)。
pip
easy_install
您可以通过调用以下命令从任意路径导入模块:
sys.path.append()
可以通过virtualenv包创建虚拟环境。
这将创建一个文件夹(比如
venv
),其中包含Python可执行文件的新副本和一个新的site-packages
目录,您可以在其中“安装”任意数量的包,而无需任何管理访问。因此,通过source venv/bin/activate
激活环境将为Python提供一个与安装这些包等效的环境。我知道这适用于SGE集群,不过虚拟环境的激活方式可能取决于集群的配置。
您可以尝试使用以下步骤在自己的站点包目录中的集群上安装
virtualenv
:从here下载virtualenv,将其放到集群中
使用
setup.py
将其安装到特定的本地目录,作为您自己的网站包:将该目录添加到PYTHONPATH:
创建virtualenv:
在主目录中安装包不需要根权限。你可以通过一个命令来完成,比如
或来源
见https://stackoverflow.com/a/7143496/284795
第一种选择更方便,因此如果服务器没有
pip
或easy_install
,您应该礼貌地要求管理员添加它,并向他们解释其好处(他们不会再被个别包的请求所困扰)。相关问题 更多 >
编程相关推荐