从文件夹导入 python 模块时出错

Error when importing python module from folders

我有以下目录结构:

source
       source_1.py
       __init__.py

source1.py 已定义 class 来源

source1.py

class Source(object):
    pass

我可以使用这个导入

>>> from source.source1 import Source
>>> Source
<class 'source.source1.Source'>

但是,当尝试使用以下方法导入时失败。

>>> from source import *
>>> source1.Source
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'source1' is not defined

请告诉我如何使用第二个导入?

对于从包中导入(不同于从模块中导入),您需要指定 * 的含义。为此,在 __init__.py 中添加如下一行:

__all__ = ["source1"]

请参阅 Importing * From a Package 的 Python 文档。