Python中的软件包和模块不起作用

时间:2020-04-29 02:25:32

标签: python python-3.x

为什么该架构无法正常工作?

 /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'**

我做错了什么?

- 预先感谢

2 个答案:

答案 0 :(得分:2)

您对python的导入系统感到困惑,它发生了。导入子包时,您要从包subpackage中导入模块subpackage,因此它应如下所示:

from subpackage.subpackage import hi_from_subpackage    

并且当您位于较低的包层次结构中时,无需说模块来自哪个巫婆包,它已经“知道”了它,因为它位于较高的层次结构中。

from models import models

像在编写核心一样思考。在这里,模型以全局变量的方式在子包的范围内。而且,当您站在测试包中时,需要像使用变量一样引用下杠杆包的名称。

答案 1 :(得分:-1)

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