我在计算机群集中运行python时遇到问题,无法找到已安装的库。
当我尝试例如在脚本中加载numpy时:
#file: /home/foo/test.py
import numpy
print numpy.__version__
在服务器上,我得到这个:
foo@abax:~$ python test.py
1.4.1
但是,当我尝试在具有远程外壳程序的节点中运行相同命令时,出现错误:
foo@abax:~$ rsh -l foo ab01 "python test.py"
Traceback (most recent call last):
File "test.py", line 2, in <module>
import numpy
ImportError: No module named numpy
有没有办法告诉python加载群集中央节点中安装的文件?
最佳答案
首先检查:
在前端服务器和群集节点上均打印PYTHONPATH
,以确保没有不一致
在前端服务器上打印numpy.__file__
,以检查它在哪里找到numpy。然后,稍微探索一下群集节点的文件系统,以查看是否可以在同一位置找到numpy(如果找不到,请运行搜索以查看是否可以找到numpy,然后相应地更新PYTHONPATH
)。
可能是numpy是本地安装在前端服务器上,而不是安装在群集节点上。在这种情况下,您将需要自己在群集节点可以访问的文件系统上安装numpy(请注意,在科学群集上,最好让群集管理员在群集节点上安装numpy,以使其对所有人可用) 。
如果平台足够相似,则可以将numpy文件夹从前端服务器复制到共享文件系统中的某个位置(例如,您要添加到PYTHONPATH
的主目录的子文件夹),但是可以进行全新安装首选。
关于python - 计算机集群中的python库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7475590/