【问题标题】:Why doesn't it recognized the module? (Python 3.7)为什么它不识别模块? (Python 3.7)
【发布时间】:2021-03-21 02:19:47
【问题描述】:

我尝试创建一个包,但出现了错误:

ModuleNotFoundError: No module named 'MyMainPackage'

这是我的文件夹:

MyMainPackage

__ pycache __(文件夹)

子包(文件夹)

__ 初始化 __.py

some_main_script.py

def report_main():
print("Hey I'm in some_main_script in main package.")

子包

__ pycache __(文件夹)

__ 初始化 __.py

mysubscripts.py

def sub_report():
print("Hey I'm function inside mysubscript")

注意:“MyMainPackage”是我的“Programing”文件夹的子文件夹之一。我称之为“Python Project”的另一个子文件夹,里面有那个文件:

from MyMainPackage import some_main_script
from MyMainPackage.SubPackage import mysubscript

some_main_script.report_main()

mysubscript.sub_report()

当我运行文件时,我得到了错误。

Traceback (most recent call last):
File "c:/Users/yoavo/Desktop/Programing/Python Projects/myprogram.py", line 1, in <module>
from MyMainPackage import some_main_script
ModuleNotFoundError: No module named 'MyMainPackage'

【问题讨论】:

    标签: python module package


    【解决方案1】:

    尝试将您的 myprogram.py 文件移动到 Programming 文件夹的根目录 这样您就有了这样的结构。 Python 从当前脚本的根文件夹中查找模块。

    Programming
    |
    |__myprogram.py
    |
    |__MyMainPackage
    

    【讨论】:

    • 就是这样,但我需要从“Python Projects”文件夹中执行此操作。
    • 如果您希望它从 Python Projects 文件夹运行,请使用 from ..MyMainPackage import some_main_script。 .. 告诉 python 向上移动一个文件夹并查找模块
    【解决方案2】:

    这可能是因为您没有将主包命名为您在主程序中调用的确切名称。请注意用于命名主包的空格和横杠。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多