假设我们有一棵这样的树:
└── my_project
├── A.py
├── __init__.py
├── my_apps
├── app_framework.py
├── app1.py
├── app2.py
├── __init__.py
在文件夹my_apps
中,在app_framework.py
中定义了一个通用类。其余所有文件都基于该文件定义了自己的子类。
文件如下:
app_framework.py
:
Class App():
...
app1.py
:
from app_framework import App
Class MyApp1(APP):
...
...
app2.py
:
from app_framework import App
Class MyApp2(APP):
...
...
因此,我要在项目文件夹中使用
from my_apps import MyApp1, MyApp2
但是我有两个错误:
第一个是ModuleNotFoundError: No module named app_framework
。我通过将from app_framework import App
更改为from .app_framework import App
ImportError: cannot import name 'MyApp1' from 'my_apps'
我可以使用from my_apps.app1 import MyApp1, MyApp2
,但我更喜欢from my_apps import MyApp1, MyApp2
,它看起来更简洁。怎么做?
答案 0 :(得分:3)
在__init__.py
中创建一个my_apps
文件,并将所需的类导入该文件:
# my_project/my_apps/__init__.py
from .app1 import MyApp1
from .app2 import MyApp2
然后在您的A.py
中可以执行以下操作:
from .my_apps import MyApp1, MyApp2