我有一个名为ui
以下模块的简单包装结构:
test/
├── app.py
├── __init__.py
└── ui
├── __init__.py
└── window.py
1 directory, 4 files
该window.py
文件包含一个基本类:
# test/ui/window.py
class Window():
def __init__(self):
print("Window constructor")
在我中,app.py
我有:
# test/app.py
from ui import window
def run():
w = window.Window()
现在,在Python 3 Shell中,我应该能够app
从包中导入模块,并test
像下面这样运行函数(我在包的父目录中):
>>> import test.app
>>> test.app.run()
但是我收到此错误(使用Python3):
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "test/app.py", line 1, in <module>
from ui import window
ModuleNotFoundError: No module named 'ui'
请注意,这适用于Python2.7 ...
怎么了
在python 3.8中测试
# test/app.py
from .ui import window
def run():
w = window.Window()
>>> import test.app
>>> test.app.run()
Window constructor
你必须做一个。ui的前面表示您正在使用本地文件夹。由于我一般对python 2不太了解,所以我无法向您解释其在那工作的原因,但我最大的猜测是,他们更改了如何在python 3中进行相对导入
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句