1

当我在计算机集群中运行 python 时,我无法找到已安装的库。

例如,当我尝试在脚本中加载 numpy 时:

 #file: /home/foo/test.py
 import numpy 
 print numpy.__version__

在服务器上,我得到这个:

foo@abax:~$ python test.py 
1.4.1

但是当我尝试在具有远程 shell 的节点中运行相同的程序时,出现错误:

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加载安装在集群中央节点的文件?

4

1 回答 1

1

首先要检查:

  • 在前端服务器和集群节点上打印PYTHONPATH,确保没有不一致
  • 在前端服务器上打印numpy.__file__,检查它在哪里找到 numpy. 然后稍微探索一下集群节点的文件系统,看看是否可以在同一个地方找到 numpy(如果没有,运行搜索以查看是否可以找到它,然后PYTHONPATH相应地更新)。

可能只是 numpy 本地安装在前端服务器上,而不是集群节点上。在这种情况下,您需要自己在集群节点可以访问的文件系统上安装 numpy(请注意,在科学集群上,最好让集群管理员在集群节点上安装 numpy,以使其可供所有人使用) .

如果平台足够相似,将 numpy 文件夹从前端服务器复制到共享文件系统中的某个位置(例如,您将添加到您的主目录的子文件夹PYTHONPATH)可能会起作用,但最好是全新安装。

于 2011-09-19T18:44:53.507 回答