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 中,有一个 ImporError 说“没有名为 mymodule 的模块”。所以看起来mymodule的路径在sys.path中,但是python没有找到。我还想提一下,错误消息说 ImportError 来自文件

/mnt/novowhatsit/YDIR/xImport.py

而不是YDIR/xImport.py

如何编辑上述文件以导入 mymodule.py?

4

1 回答 1

0

当 condor 运行你的进程时,它会在该机器上创建一个目录(通常在本地硬盘上)。它将其设置为工作目录。这可能就是您看到的问题。如果 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 回答