假设文件结构(简体)看起来是这样的:Python的导入失败(在SLURM环境)
> some_script.py
> +extra_directory/
> ++ __init__.py
> ++ extra_script.py
在我的Python文件some_script.py
我有一些进口看起来像这样:
from extra_directory.extra_script import extra_class
这在我的桌面上运行良好。
然而,当我在Slurm环境在集群上运行此,我总是得到这个错误:
Traceback (most recent call last): File "/work/var/slurmd/state.node253.d/job17281/slurm_script", line 2, in from distributions.convert_to_distribution import DistributionConverter as DC ImportError: No module named distributions.convert_to_distribution
凡分布的东西是extra_directory例子的真实姓名。
任何想法?
编辑:
为了澄清我的情况:我其实在每个目录__init__.py
脚本(只是忘了在这里提到它)。然而,进口仍然失败。
我现在的解决方法是添加在我的脚本的绝对路径:
sys.path.append("/absolute/path/to/extra_directory")
你确定你的脚本在目录开始,你认为它已经开始?脚本标题是什么样的? – damienfrancois