1

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 に指示する方法はありますか?

4

1 に答える 1

1

最初に確認すること:

  • PYTHONPATH不整合がないことを確認するために、フロントサーバーとクラスターノードの両方に印刷します
  • フロントサーバーに印刷numpy.__file__して、numpyがどこにあるかを確認します。次に、クラスターノードのファイルシステムを少し調べて、同じ場所でnumpyが見つかるかどうかを確認します(見つからない場合は、検索を実行して見つけることができるかどうかを確認し、それにPYTHONPATH応じて更新します)。

numpyがフロントサーバーにローカルにインストールされているだけで、クラスターノードにはインストールされていない可能性があります。その場合、クラスターノードがアクセスできるファイルシステムに自分でnumpyをインストールする必要があります(科学クラスターでは、クラスター管理者にクラスターノードにnumpyをインストールして、すべての人が利用できるようにすることをお勧めします)。 。

プラットフォームが十分に類似している場合は、numpyフォルダーをフロントサーバーから共有ファイルシステムのどこかにコピーすることで機能する可能性があります(たとえば、ホームディレクトリのサブフォルダーに追加しますPYTHONPATH)が、クリーンインストールをお勧めします。

于 2011-09-19T18:44:53.507 に答える