计算集群中的Python库

1 投票
1 回答
2030 浏览
提问于 2025-04-17 02:37

我在一个计算机集群上运行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加载集群中央节点上已安装的文件呢?

1 个回答

1

首先要检查的内容:

  • 在前端服务器和集群节点上都打印出 PYTHONPATH,确保它们没有不一致的地方。
  • 在前端服务器上打印 numpy.__file__,看看它是从哪里找到 numpy 的。然后稍微浏览一下集群节点的文件系统,看看能否在同样的位置找到 numpy(如果找不到,可以搜索一下,找到后再相应地更新你的 PYTHONPATH)。

可能的情况是,numpy 只在前端服务器上安装了,但在集群节点上没有。在这种情况下,你需要自己在集群节点可以访问的文件系统上安装 numpy(注意,在科学计算集群上,最好是请集群管理员在集群节点上安装 numpy,这样大家都能用)。

如果平台相似,可以尝试把前端服务器上的 numpy 文件夹复制到共享文件系统中的某个地方(比如你家目录下的一个子文件夹,然后把这个文件夹添加到你的 PYTHONPATH 中),这样可能会有效,但最好还是进行干净的安装。

撰写回答