python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python项目文件结构

python项目文件结构实例详解

作者:1037号森林里一段干木头

python项目中不同类型的文件承担着不同的角色,理解它们的作用对于高效开发和协作至关重要,这篇文章主要介绍了python项目文件结构的相关资料,需要的朋友可以参考下

一、模块划分原则

二、包结构设计常用方式

三、推荐的目录结构

my_project/                     # 项目根目录
├── src/                        # 主包目录(核心代码)
│   └── my_project/             # 总包(与项目同名)
│       ├── __init__.py         # 包初始化文件(定义公共接口)
│       ├── core/               # 核心逻辑子包
│       │   ├── __init__.py
│       │   ├── algorithms.py  # 核心算法实现
│       │   └── data_loader.py  # 数据加载模块
│       ├── utils/              # 工具子包
│       │   ├── __init__.py
│       │   ├── logger.py       # 日志工具
│       │   └── helpers.py     # 通用辅助函数
│       └── config/            # 配置子包
│           ├── __init__.py
│           ├── settings.py    # 全局配置
│           └── constants.py   # 常量定义
├── tests/                      # 测试目录(与源码镜像结构)
│   ├── __init__.py
│   ├── test_core/             # 核心逻辑测试子包
│   │   ├── test_algorithms.py
│   │   └── test_data_loader.py
│   └── test_utils/             # 工具测试子包
│       └── test_logger.py
├── docs/                       # 文档目录
│   ├── api.md                 # API文档
│   └── quickstart.md          # 快速入门指南
├── scripts/                    # 可执行脚本
│   ├── run_pipeline.py        # 主运行脚本
│   └── deploy.sh              # 部署脚本
├── requirements.txt           # 项目依赖清单
├── setup.py                   # 打包配置文件[1,5](@ref)
├── pyproject.toml             # PEP 621项目元数据(可选)
├── .gitignore                 # Git忽略规则[7](@ref)
├── README.md                  # 项目说明(必含安装、使用指南)
└── LICENSE                    # 开源协议

一、总包层级的__init__.py(src/my_project/__init__.py)

二、子包层级的__init__.py(如core/__init__.py)

三、测试目录的__init__.py(tests/及其子目录)

四、其他目录的__init__.py

• 配置子包(config/__init__.py):集中导出全局配置项(如from .settings import DB_URL),便于其他模块统一调用。

• 工具子包(utils/__init__.py):定义工具链的公共接口(如日志初始化函数)。

总结

目录层级__init__.py核心作用典型代码示例
总包(my_project包初始化、公共接口聚合、版本管理from .core import *; __version__ = "1.0"
子包(如core子模块功能封装、依赖初始化from .algorithms import train_model; __all__ = ["train_model"]
测试目录(tests测试夹具共享、环境配置import pytest; @pytest.fixture def mock_db(): ...

通过合理设计各层级的__init__.py,可实现代码的高内聚低耦合,提升项目的可维护性和扩展性。

到此这篇关于python项目文件结构的文章就介绍到这了,更多相关python项目文件结构内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文