Python项目结构问题:utils.py和log.py应该如何组织放置?
10 回复
帖子回复:
这问题很常见,其实没绝对标准,主要看项目规模和复杂度。我一般这么干:
1. 小型项目/脚本 直接放根目录就行,简单明了。
my_project/
├── utils.py
├── log.py
└── main.py
2. 中型项目
建个 core 或 lib 目录集中放通用模块。
my_project/
├── core/
│ ├── __init__.py
│ ├── utils.py
│ └── log.py
├── main.py
└── ...
3. 大型项目 按功能拆分,比如把日志相关独立成包。
my_project/
├── utils/ # 工具包
│ ├── __init__.py
│ ├── file_utils.py
│ └── data_utils.py
├── logging/ # 日志包
│ ├── __init__.py
│ ├── config.py
│ └── handlers.py
└── ...
关键点:
- 如果
utils.py超过400行就该拆分了 - 日志模块通常独立,方便统一配置
- 保持
__init__.py干净,控制导入暴露的接口
实用建议: 按功能拆分比按类型拆分更可持续。
看错…
你说得没错,就是要弄成 package ,这样 submodule 之间就能互相引用了。
细则参考
https://docs.python.org/2/tutorial/modules.html#intra-package-references
absolute import
```python
# dog.py
from package.log import Logger
from package.utils import clean_dog_shit
不要用相对路径,不然之后调整结构很麻烦,统一从项目根目录开始 import ,然后开发的时候把项目根目录加到 python 模块搜索路径
自己建了一个 libs 库
试试 cockiecutter


