系统错误:父模块“未加载”,无法执行相对导入[重复]

2024-02-18

我有以下目录:

myProgram
└── app
    ├── __init__.py
    ├── main.py 
    └── mymodule.py

mymodule.py:

class myclass(object):

def __init__(self):
    pass

def myfunc(self):
    print("Hello!")

main.py:

from .mymodule import myclass

print("Test")
testclass = myclass()
testclass.myfunc()

但是当我运行它时,我收到此错误:

Traceback (most recent call last):
  File "D:/Users/Myname/Documents/PycharmProjects/myProgram/app/main.py", line 1, in <module>
    from .mymodule import myclass
SystemError: Parent module '' not loaded, cannot perform relative import

这有效:

from mymodule import myclass

但是当我输入此内容时,我没有得到自动完成,并且有一条消息:“未解析的引用:mymodule”和“未解析的引用:myclass”。 在我正在处理的另一个项目中,我收到错误:“ImportError:没有名为“mymodule”的模块。

我能做些什么?


我遇到了同样的问题,我通过使用绝对导入而不是相对导入解决了它。

例如,在您的情况下,您可以编写如下内容:

from app.mymodule import myclass

您可以在文档 https://docs.python.org/3/tutorial/modules.html#intra-package-references.

请注意,相对导入基于当前的名称 模块。由于主模块的名称始终是“__main__”, 用作 Python 应用程序主模块的模块 必须始终使用绝对导入。

编辑:如果您遇到此错误ImportError: No module named 'app.app'; 'app' is not a package,记得添加__init__.py文件在你的app目录,以便解释器可以将其视为包。如果文件为空也没关系。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

系统错误:父模块“未加载”,无法执行相对导入[重复] 的相关文章

随机推荐