Python3:导入类问题

时间:2019-07-11 14:00:35

标签: python class import directory

假设我们有一棵这样的树:

└── 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

但是我有两个错误:

  1. 第一个是ModuleNotFoundError: No module named app_framework。我通过将from app_framework import App更改为from .app_framework import App

  2. 来部分修复
  3. ImportError: cannot import name 'MyApp1' from 'my_apps'

我可以使用from my_apps.app1 import MyApp1, MyApp2,但我更喜欢from my_apps import MyApp1, MyApp2,它看起来更简洁。怎么做?

1 个答案:

答案 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