【问题标题】:ModuleNotFoundError: No module named 'a' [duplicate]ModuleNotFoundError:没有名为“a”的模块[重复]
【发布时间】:2020-04-12 04:33:26
【问题描述】:

mod_b.py 中的以下代码

from a.sub_a import mod_a

mod_a.sample()

尝试从 mod_b 在终端中运行 Python 文件,出现以下错误:

(base) C:\Users\%%\Desktop\python-test>C:/Users/%%/AppData/Local/Continuum/anaconda3/python.exe c:/Users/%%/Desktop/python-test/a/sub_b/mod_b.py
Traceback (most recent call last):
  File "c:/Users/%%/Desktop/python-test/a/sub_b/mod_b.py", line 1, in <module>
    from a.sub_a import mod_a
ModuleNotFoundError: No module named 'a'

【问题讨论】:

  • (base) C:\Users\%%\Desktop\python-test&gt;C:/Users/%%/AppData/Local/Continuum/anaconda3/python.exe c:/Users/%%/Desktop/python-test/a/sub_b/mod_b.py Traceback (most recent call last): File "c:/Users/%%/Desktop/python-test/a/sub_b/mod_b.py", line 1, in &lt;module&gt; from .a.sub_a import mod_a ModuleNotFoundError: No module named '__main__.a'; '__main__' is not a package
  • 我想你的问题的答案在这里:stackoverflow.com/questions/4383571/…

标签: python python-3.x python-import importerror python-module


【解决方案1】:

当执行一个 python 文件时,该文件的目录被添加到 PYTHONPATH 中......就是这样。

由于“绝对”导入试图从 pythonpath 上的目录中找到它们的目标,它在这里找不到任何东西。

你想要:

  • 将可执行脚本移动到您的“路径根目录”(可能从模块中提取脚本)
  • 显式配置 PYTHONPATH
  • 在脚本中手动更新 sys.path

【讨论】:

    猜你喜欢
    • 2020-12-29
    • 2020-04-18
    • 2017-05-30
    • 2020-10-28
    • 2019-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多