我正在学习如何在python中创建软件包,作为该练习的一部分,我在子模块中设置了__init__.py
文件。我有一个类似于以下内容的文件夹结构
├── parent_folder
│ ├── README.txt
│ ├── __init__.py
│ ├── base_estimator.py
│ ├── child_folder_1
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── __init__.cpython-36.pyc
│ │ │ ├── naming_constants.cpython-36.pyc
│ │ │ └── value_constants.cpython-36.pyc
│ │ ├── naming_constants.py
│ │ └── value_constants.py
│ ├── child_folder_2
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ │ ├── __init__.cpython-36.pyc
│ │ │ └── base.cpython-36.pyc
│ │ ├── adult.csv
│ │ ├── axis_fi_nan_treated.csv
│ │ ├── bank_additional_full.csv
│ │ ├── base.py
│ │ ├── boston_house_prices.csv
│ │ ├── breast_cancer.csv
该软件包是parent_folder
和child_folder_1
,child_folder_2
是其中的子模块
__init__.py
中的parent_folder
文件看起来像这样
__all__ = ['child_folder_1', 'child_folder_2', 'base_estimator']
__init__.py
中的child_folder_2
文件看起来像
from .base import load_pima_diabetes
from .base import load_titanic
from .base import load_iris
from .base import load_data
from .base import load_breast_cancer_wisconsin
from .base import load_boston_house_prices
from .base import load_axis_fi
from .base import load_bank_subscription
from .base import load_adult_income
__all__ = ['load_iris', 'load_boston_house_prices', 'load_bank_subscription', 'load_adult_income',
'load_breast_cancer_wisconsin', 'load_pima_diabetes', 'load_axis_fi', 'load_titanic', 'load_data']
.base
是child_folder_2
中的文件,其中定义了几个用于加载数据集的函数。 __init__.py
的{{1}}为空白。
这样做为我的自动完成创建了一个小问题。由于我已经制作了这些child_folder_1
文件,因此PyCharm不会在自动完成中显示任何内容。我尝试通过输入__init__.py
来导入child_folder_2
子模块,但是什么也不显示。
奇怪的是,代码在运行。似乎我缺少某些东西,但我不知道是什么。关于如何发生这种情况的任何想法?