Python 项目标准目录结构
Python 项目虽无唯一绝对标准,但存在行业通用的最佳实践结构。根据项目规模与用途(从小型脚本到中大型工程化、Web 框架),结构逐步规范,遵循 Python 社区通用约定,兼顾可读性、可维护性与协作效率。
一、基础通用版
适用于:个人项目、工具类项目、业务逻辑不复杂的中小型项目、内部自用项目。结构简洁够用,无冗余,规范且易上手。
your_project/ # 项目根目录(项目名,自定义)
├── README.md # 【必选】项目说明文档
├── requirements.txt # 【必选】项目依赖包清单(版本锁定)
├── .gitignore # 【必选】git 忽略文件
├── src/ # 【必选】核心源码目录
│ ├── __init__.py # 标识 Python 包
│ ├── main.py # 程序入口文件
│ ├── core/ # 核心业务逻辑模块
│ │ └── __init__.py
│ ├── utils/ # 工具类模块
│ │ └── __init__.py
│ └── config/ # 配置模块
│ └── __init__.py
└── tests/ # 【推荐】测试用例目录
├── __init__.py
└── test_core.py
基础版核心文件/目录说明
- README.md:项目的说明书,包含项目简介、运行环境、安装依赖命令、启动方式、功能说明等。
- .gitignore:git 提交时的忽略规则,避免提交无用文件(如
__pycache__/、.env、venv/等)。 - src/:核心源码目录,所有业务代码、模块都放在这里,实现源码与配置/测试/文档分离。
- tests/:测试目录,遵循测试与源码分离,推荐用 pytest 框架编写测试用例。
- requirements.txt:依赖清单,记录项目所有用到的第三方包及版本号。格式示例:
requests==2.31.0
pandas==2.1.4
numpy==1.26.2
安装命令:pip install -r requirements.txt。
二、企业级规范版
适用于:团队协作项目、开源项目、生产环境部署的项目、复杂业务项目。在基础版上扩展,完全遵循 Python 社区最佳实践。
your_project/
├── README.md
├── requirements.txt # 基础依赖清单
├── requirements-dev.txt # 开发环境依赖
├── .gitignore
├── LICENSE # 开源协议
├── pyproject.toml # 【核心】项目构建配置文件
├── setup.py/setup.cfg # 可选:打包配置文件
├── docs/ # 项目完整文档
├── examples/ # 示例代码目录
├── data/ # 数据目录
├── logs/ # 日志目录
├── .
├── venv/
├── src/your_package/
│ ├── __init__.py
│ ├── main.py
│ ├── core/
│ ├── utils/
│ ├── config/
│ └── api/
├── tests/
│ ├── conftest.py
└── build/ / dist/

