Python 项目标准目录结构(全场景完整版)
Python 项目没有「唯一绝对」的标准,但有「行业通用、约定俗成」的最佳实践结构。会根据「项目规模/用途」区分,从小型脚本项目 → 中大型工程化项目 → Web 框架项目,结构逐步规范,所有规范都遵循 Python 社区的通用约定,兼顾可读性、可维护性、协作效率。
一、基础通用版
适用于:个人项目、工具类项目、业务逻辑不复杂的中小型项目、内部自用项目。结构简洁够用,无冗余,规范且易上手,是 Python 项目的「最小完美结构」。
your_project/ # 项目根目录(项目名,自定义,比如 data_analysis/)
├── README.md # 【必选】项目说明文档,所有人都要写!
├── requirements.txt # 【必选】项目依赖包清单(版本锁定)
├── .gitignore # 【必选】git 忽略文件,避免提交无用文件
├── src/ # 【必选】核心源码目录(重点!所有业务代码都放这里)
│ ├── __init__.py # 标识 src 是 Python 包(空文件即可,Python3.3+ 可省,但建议保留)
│ ├── main.py # 程序入口文件(项目启动/执行的主文件)
│ ├── core/ # 核心业务逻辑模块(比如算法、核心功能实现)
│ │ └── __init__.py
│ ├── utils/ # 工具类模块(通用函数、常量、装饰器等)
│ │ └── __init__.py
│ └── config/ # 配置模块(配置文件、环境变量、参数配置)
│ └── __init__.py
└── tests/ # 【推荐】测试用例目录(单元测试、集成测试)
├── __init__.py
└── test_core.py
基础版核心文件/目录说明(必记)
- README.md:项目的「说明书」,必须写!至少包含:项目简介、运行环境、安装依赖命令、启动方式、功能说明、作者信息。(别人接手/你自己半年后看,靠这个)
- .gitignore:git 提交时的「忽略规则」,避免提交无用文件,Python 项目必忽略的内容:
__pycache__/、.pyc、.pyd、venv/、.env、*.log、build/、dist/等。 - src/:核心源码目录,所有业务代码、模块都放在这里,这是 Python 项目的核心规范——源码与配置/测试/文档分离,让项目结构清晰。
- tests/:测试目录,遵循「测试与源码分离」,所有测试代码放这里,推荐用
pytest框架编写测试用例。
requirements.txt:Python 项目的「依赖清单」,记录项目所有用到的第三方包 + 版本号,格式示例:
requests==2.31.0 pandas==2.1.4 numpy==1.26.2
安装命令:pip install -r requirements.txt,。

