首页 > 解决方案 > 在 Python 3.7 中导入序列

问题描述

我想用这种结构组织一个包:

/program.py
/__init__.py
/data/
/data/__init__.py
/data/method_1.py
/data/method_2.py
/data/classes.py

程序导入method_1和method_2,method_1和method_2导入类。但我收到一个错误:ModuleNotFoundError:没有名为“method_1”的模块。我应该如何组织这个包以及我应该在init .py 文件中写什么?

program.py:

import __init__
from data import classes
from data import method_1
from data import method_2
...


__init__.py:

__all__ = ['data']
from data import *


/data/__init__.py:

__all__ = ['classes', 'method_1', 'method_2']
from method_1 import *
from method_2 import *
from classes import *


/data/method_1.py: (and also /data/method_2.py)

import classes
...

标签: python-3.ximportpackage

解决方案


method_1, method_2, 和classes 都在data中,因此:

# data/__init__.py
from .method_1 import *
from .method_2 import *
from .classes import *

...

# data/method_1.py
from . import classes

推荐阅读