0

我正在尝试通过 提交作业qsub myScript.sh -cwd,其中 shell 脚本运行 Python-2.7 脚本,myPython.py.

    # myScript.sh
    python2.7 myPython.py

现在,myPython.py需要导入存储在我的本地目录中的 Python 包,以便脚本以

    # myPython.py
    import sys
    sys.path.append('/file/path/for/package')
    import package

提交作业后,日志文件包含 Python 的以下输出:

    ImportError: No module named problem_c

这个错误发生在从*.py文件中导入了几个模块而没有返回错误之后,所以我相当确定这不是路径的问题。我发现的唯一区别是problem_c文件以.pyf(即problem_c.pyf)结尾。它与以 . 结尾的模块存储在同一目录中.py

当我在本地运行脚本python2.7 myPython.py时,加载包时不会发生此错误。但是,如果不将其提交到队列中,该作业的内存占用太大而无法完成。为什么在我使用 时编写为.pyf文件的模块会受到不同的处理qsub,在这种情况下如何导入它们?

(如果重要的话,我正在处理的集群是使用 Sun Grid Engine 设置的。)

谢谢你的想法。

4

2 回答 2

0

或 f2py。显然您没有在集群上添加模块。

于 2013-11-21T21:52:29.403 回答
0

以下是导入模块及其路径的方法:

import imp
module_name = imp.load_source('module_name', '/abs/path/to/module/module_name.py')

# usage
module_name.function()
于 2018-07-03T08:32:02.487 回答