为什么这个架构不能工作?
/test
__init__.py
app.py
models.py
/subpackage
__init__.py
subpackage.py下面是示例代码:
app.py
from test.subpackage import hi_from_subpackage
hi_from_subpackage()subpackage/subpackage.py
from test.models import models
def hi_from_subpackage():
print('Hi')
# I nee models here too
models()错误是:
Traceback (most recent call last):
File "app.py", line 1, in <module>
from test.subpackage import hi_from_subpackage
**ModuleNotFoundError: No module named 'test.subpackage'**我做错什么了?
发布于 2020-04-29 03:19:52
您将与python的导入系统混淆,这是会发生的。导入子包时,希望从包subpackage导入模块subpackage,因此应该如下所示:
from subpackage.subpackage import hi_from_subpackage 当您在包层次结构中处于较低的级别时,您不需要说模块来自哪个包,它已经“知道”了,就像在一个更高的层次中一样。
from models import models想一想,如果你是在写核心。这里,模型以全局变量的方式在子包的范围内。当您站在测试包中时,您需要引用一个较低级别的包的名称,就像您对变量所做的那样。
发布于 2020-04-29 03:26:59
尝试从cmd运行pip install test (如果是Windows )。关于您正在使用的IDE,我将向您推荐vs代码。
https://stackoverflow.com/questions/61493192
复制相似问题