如何整洁存储Python工作流包并为每个包单独配置setup.py文件
核心结论
你对官方推荐的Python包分发结构的理解基本准确,但该结构是针对对外发布、复杂项目的最佳实践建议,并非强制要求,完全可以根据使用场景大幅简化。
官方推荐的三层嵌套结构主要是为了避免开发时本地导入未安装的源码、打包时混入测试文件/配置文件等问题,仅对外公开发布的复杂包需要遵循,个人自用或者内部使用的小包完全不需要遵守。
简化配置方案
场景1:每个包单独分发、单独安装
可以直接省略src层和外层的wrapper目录,每个包的目录结构仅需要两层,比官方推荐少两层嵌套:
my_packages/ pkg1/ pyproject.toml pkg1/ main.py ... pkg2/ pyproject.toml pkg2/ main.py ...
只需在pyproject.toml中指定包名、版本、包路径即可,对应目录下执行pip install .就能完成安装。目前已经不推荐使用老旧的setup.py配置,pyproject.toml配置项更简洁,没有冗余的配置代码。
场景2:所有包统一分发、一次性安装
完全可以直接使用你理想中的目录结构,只需要在根目录新增一个pyproject.toml配置文件,不需要对现有包目录做任何调整:
my_packages/ pyproject.toml pkg1/ main.py ... pkg2/ main.py ...
配置文件中指定packages = ["pkg1", "pkg2"]即可,在根目录执行一次安装命令就能把所有包安装到当前Python环境。
场景3:仅本地自用,无需分发
连配置文件都不需要写:把my_packages的绝对路径加到PYTHONPATH环境变量里,即可在所有Python脚本中直接导入pkg1、pkg2使用,连安装步骤都可以省略。
内容的提问来源于stack exchange,提问作者CSStudent7782
相关产品推荐
相关产品推荐

