Python项目目录组织指南🐍
让你的 Python 项目告别混乱:一份实用的目录组织指南 你是否有过这样的经历:打开几个月前写的项目,看着一堆散落的 .py 文件陷入沉思——这个是干什么的?那个又被谁调用?入口文件到底是哪个? 或者更糟:同事发来一个项目,你解压后看到几十个文件平铺在根目录,连 README 都找不到,顿时兴趣全无。 如果你点头了,那么这篇文章就是写给你的。 为什么项目结构很重要? 想象你搬家到一个新房子。如果所有东西——衣服、厨具、文件、零食——都堆在客厅里,你的生活会变成什么样?找个东西要翻遍整个房间,朋友来做客无处下脚,想整理都不知道从哪里开始。 Python 项目也是一样。当你的代码从单个脚本增长到成百上千个文件时,如何组织它们决定了项目的生死。 一个好的项目结构能让: 你自己 快速找到需要修改的代码 新同事 在 5 分钟内理解项目布局 测试 与源码清晰分离,不会混在一起 部署 变得可预测和自动化 先看一个糟糕的例子 很多 Python 开发者都是从这样开始的: my-project/ ├── main.py ├── utils.py ├── database.py ├── api.py ├── test.py ├── config.py └── new_utils.py 看起来还行?但问题已经在悄悄滋生: import 的地雷阵:当你运行 python main.py 时,Python 会把当前目录加到搜索路径。这意味着你可以直接 import utils,但也意味着你可能错误地导入了其他同名模块。 测试在哪里?:test.py 看起来很孤单,而且和源码混在一起。当项目变大后,测试文件会淹没在源码中。 配置混乱:config.py 和代码放在一起,意味着每次部署都要小心不要把配置文件一起打包。 无法打包:如果你想把项目分享给别人,或者发布到 PyPI,这种结构根本无法打包。 两种主流布局:src vs flat Python 社区争论已久的话题:源码应该放在哪里? Flat Layout(扁平布局) my-project/ ├── README.md ├── pyproject.toml ├── my_package/ │ ├── __init__.py │ └── module.py └── tests/ └── test_module.py 优点:简单直观,适合快速原型和脚本 ...