我在计算机群集中运行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/

10-11 23:02
查看更多