在Python中初始化项目布局是确保代码可维护性、可扩展性和团队协作的重要步骤。以下是一个标准化的项目布局方案,涵盖核心概念、优势、常见类型及示例:
项目布局指代码文件、配置、资源等的组织方式,遵循模块化和关注点分离原则。常见标准参考:
my_project/ # 项目根目录
├── docs/ # 文档
├── src/ # 主代码(或直接用项目名代替src)
│ ├── module1/ # 功能模块1
│ │ ├── __init__.py
│ │ └── core.py
│ ├── module2/ # 功能模块2
│ └── __init__.py # 标记为Python包
├── tests/ # 单元测试
│ ├── test_module1.py
│ └── test_module2.py
├── scripts/ # 辅助脚本
├── data/ # 静态数据
├── .gitignore # Git忽略规则
├── pyproject.toml # 构建配置(替代setup.py)
├── README.md # 项目说明
└── requirements.txt # 依赖列表(或使用Pipenv/Poetry)
src
布局(避免导入冲突)。static/
(静态文件)和templates/
(模板)。notebooks/
和data/
目录。[build-system]
requires = ["setuptools>=42"]
build-backend = "setuptools.build_meta"
[project]
name = "my_project"
version = "0.1.0"
dependencies = [
"requests>=2.25.0",
]
__init__.py
(标记包)# 可空文件,或定义包级变量/函数
__version__ = "0.1.0"
# tests/test_module1.py
from src.module1.core import add
def test_add():
assert add(1, 2) == 3
pip
+virtualenv
)。ModuleNotFoundError
pip install -e .
(开发模式安装)。PYTHONPATH
包含项目根目录。requirements-dev.txt
(开发依赖)或Poetry
的dev-dependencies
。app/
(Flask/Django应用代码)。pyproject.toml
中配置[project.scripts]
。通过标准化布局,项目可轻松集成CI/CD、文档生成等后续流程。