imp.load_source() 抛出“No Module Named”错误 Python 2.7

Posted

技术标签:

【中文标题】imp.load_source() 抛出“No Module Named”错误 Python 2.7【英文标题】:imp.load_source() throwing "No Module Named" Error Python 2.7 【发布时间】:2016-08-30 08:45:33 【问题描述】:

我目前使用的是 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 为什么不直接加载整个包呢? @AnmolSinghJaggi 当然我可以试试,但它的语法是什么? 【参考方案1】:

试试:

imp.load_source("目录", "目录" + "文件名.py")

【讨论】:

不幸的是,这似乎返回了相同的错误。我是否需要在目录路径中的每个文件夹中都有一个 init.py 文件?我目前只在包含脚本本身的文件夹中拥有它 没有。你没有。只是要清楚,哪个文件正在加载哪个文件?我的印象是 OtherModule 调用这个加载语句 SourceFile.py ......如果它们在同一个目录中,你应该做 imp.load_source(".", "SourceFile.py") 如果你想加载 SourceFile.py

以上是关于imp.load_source() 抛出“No Module Named”错误 Python 2.7的主要内容,如果未能解决你的问题,请参考以下文章

获取导入模块的路径

在访问对象时运行 python 命令

通过文件路径导入模块时使用 Python 多处理

WPF的TextBox抛出InvalidOperationException异常:Cannot close undo unit because no opened unit exists.

如何用python运行bat文件?

解决Spring MVC no handler抛出异常