【发布时间】:2016-02-23 14:12:45
【问题描述】:
我有以下目录:
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: No module named 'mymodule'.
我能做什么?
【问题讨论】:
-
我遇到了同样的问题。显然在包中运行脚本被认为是一种不好的做法,在这种情况下你不能使用相对导入。由于您的 main.py 在包应用程序中,因此使用相对导入会导致错误。仅在模块中使用相对导入并在包外运行脚本。
-
使用
python -m package.module而不是python package/module.py。 -
This 是解决问题的答案。
-
当我不小心运行了我正在编辑的当前文件而不是我的
main.py启动器时,在 PyCharm 中得到了这个。
标签: python python-3.x