我有以下目录:
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(使用前将#替换为@)