3

これは、HTCondor ジョブでの自分の python モジュールのインポートに関するものです。

「mymodule.py」がインポートしたいモジュールで、XDIR というディレクトリに保存されているとします。YDIR という別のディレクトリに、xImport.py というファイルを書きました。

#!/usr/bin/env python
import os
import sys
print sys.path
import numpy
import mymodule

およびコンドル送信ファイル:

executable = xImport.py
getenv = True
universe = Vanilla
output = xImport.out
error = xImport.error
log = xImport.log
queue 1

これを送信すると、xImport.out に sys.path が出力され、XDIR が表示されます。しかし、xImport.error には、「mymodule という名前のモジュールがありません」という ImporError があります。したがって、mymodule へのパスは sys.path にあるようですが、python はそれを見つけられません。また、エラーメッセージには、ImportError がファイルから発生したことが示されていることにも言及したいと思います

/mnt/novowhatsit/YDIR/xImport.py

ではありませんYDIR/xImport.py

上記のファイルを編集して mymodule.py をインポートするにはどうすればよいですか?

4

1 に答える 1

0

コンドルがプロセスを実行すると、そのマシン (通常はローカル ハード ドライブ) にディレクトリが作成されます。それを作業ディレクトリとして設定します。それはおそらくあなたが見ている問題です。XDIR が、condor_submit を実行しているマシンに対してローカルである場合、その内容は、xImport.py が実行されているリモート マシンには存在しません。

.submit 機能の transfer_input_files メカニズム ( http://research.cs.wisc.edu/htcondor/manual/v7.6/2_5Submitting_Job.htmlを参照) を使用して、mymodule.py をリモート マシンにコピーしてみてください。

于 2014-03-20T17:05:22.737 に答える