首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中的包和模块无法工作

Python中的包和模块无法工作
EN

Stack Overflow用户
提问于 2020-04-29 02:25:32
回答 2查看 39关注 0票数 2

为什么这个架构不能工作?

代码语言:javascript
复制
 /test
     __init__.py
     app.py
     models.py 
     /subpackage
         __init__.py
         subpackage.py

下面是示例代码:

app.py

代码语言:javascript
复制
from test.subpackage import hi_from_subpackage    

hi_from_subpackage()

subpackage/subpackage.py

代码语言:javascript
复制
from test.models import models

def hi_from_subpackage():
    print('Hi')

# I nee models here too
models()

错误是:

代码语言:javascript
复制
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'**

我做错什么了?

  • 提前感谢
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-29 03:19:52

您将与python的导入系统混淆,这是会发生的。导入子包时,希望从包subpackage导入模块subpackage,因此应该如下所示:

代码语言:javascript
复制
from subpackage.subpackage import hi_from_subpackage    

当您在包层次结构中处于较低的级别时,您不需要说模块来自哪个包,它已经“知道”了,就像在一个更高的层次中一样。

代码语言:javascript
复制
from models import models

想一想,如果你是在写核心。这里,模型以全局变量的方式在子包的范围内。当您站在测试包中时,您需要引用一个较低级别的包的名称,就像您对变量所做的那样。

票数 2
EN

Stack Overflow用户

发布于 2020-04-29 03:26:59

尝试从cmd运行pip install test (如果是Windows )。关于您正在使用的IDE,我将向您推荐vs代码。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61493192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档