Python:包含多个包的项目,但我想要一个配置文件

时间:2017-04-12 13:24:26

标签: python setup-project directory-structure

我有一个我将分发的项目,它将包含几个子包。一个用于清理数据,一个用于转换数据,另一个用于计算某些统计信息。我想避免使用3个config.py文件,我可以将config.py文件放在顶层吗?例如,而不是这样做:

MyPackage
|
├──mypackage
|     |
|     ├── __init__.py
|     |
|     ├── data_clean
|     |   ├── __init__.py
|     |   ├── config.py
|     |   └── f1.py
|     |
|     ├── data_transform
|     |   ├── __init__.py
|     |   ├── config.py
|     |   └── g1.py
|     |
|     └── stat_calc
|        ├── __init__.py
|        ├── config.py
|        ├── s1.py
|        └── command_line_interface.py # <- users will use this from cmd.exe
|      
├── README.txt    
|
└── setup.py

我想:

MyPackage
|
├──mypackage
|     |
|     ├── __init__.py
|     |
|     ├── config.py  # <---- put all 3 config.py stuff into here
|     |
|     ├── data_clean
|     |   ├── __init__.py
|     |   └── f1.py
|     |
|     ├── data_transform
|     |   ├── __init__.py
|     |   └── g1.py
|     |
|     └── stat_calc
|         ├── __init__.py
|         ├── s1.py
|         └── command_line_interface.py # <- users will use this from cmd.exe
| 
├── README.txt    
|
└── setup.py

这是否有意义,这是pythonic /正确吗?

1 个答案:

答案 0 :(得分:1)

假设您的模块将存储在PYTHONPATH中,答案是肯定的。只需导入它:

来自MyPackage导入配置