2011-09-19 49 views
1

我在Python中查找安装的库时遇到了问题,因为我在计算机集群中运行它。计算机集群中的python库

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

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

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

[email protected]:~$ python test.py 
1.4.1 

但是当我尝试运行在一个节点相同与远程shell,我得到一个错误:

[email protected]:~$ 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加载安装在CE的文件集群的中央节点?

+1

看看[find_module](http://docs.python.org/library/imp.html#imp.find_module),它可能会帮助你。 – brc

回答

1

首先需要检查的事项:

  • 打印PYTHONPATH额叶服务器和群集节点上都,以确保有正面服务器上没有矛盾
  • 打印numpy.__file__,以检查发现numpy的。然后探索集群节点的文件系统,看看numpy是否可以在同一个地方找到(如果没有,运行搜索以查看是否可以找到它,然后相应地更新您的PYTHONPATH)。

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

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

+0

PYTHONPATH是空的...库文件在集群节点中不存在。我认为管理员已经在所有节点中复制了libs,includes等目录。我会问他这是否可能。如果没有,我会尝试在我的主文件夹中安装numpy(它在所有节点中复制)。 :( –