Python 2.7中,使用imp.load_source()时会出现“没有模块命名”的错误。

6

我目前使用的是Python 2.7版本,我想要像这样加载一个文件:

myPlt = imp.load_source('SourceFile', 'path/to/SourceFile.py')

然而,SourceFile.py 导入了模块 OtherModule,后者与 SourceFile 在同一目录中。其包结构如下:
/path
 .../to
      ...SourceFile.py
      ...OtherModule.py
      ...__init__.py

当我运行load_source时,出现了"ImportError: No module named OtherModule"的错误。
我的load_source调用是否不正确?我应该采取其他方法来导入SourceFile吗?

首先加载 OtherModule.py 吗? - Natecat
为什么不直接加载整个包? - Anmol Singh Jaggi
@AnmolSinghJaggi 当然可以尝试,但是语法应该怎么写呢? - Julian Coltea
1个回答

0
尝试:

imp.load_source("directory", "directory" + "filename.py")


不幸的是,似乎返回了相同的错误...我需要在目录路径中的每个文件夹中都有一个__init__.py文件吗?我目前只在脚本本身所在的文件夹中有它。 - Julian Coltea
不需要。为了明确起见,哪个文件正在加载哪个文件?我印象中是OtherModule调用这个加载语句SourceFile.py...如果它们在同一个目录中,你应该使用imp.load_source(".", "SourceFile.py")来加载SourceFile.py。 - mattsap

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接