You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python项目src布局规范:除项目模块外还可存放什么?

Python src布局相关问题解答

1. src目录除项目模块外是否允许存放其他内容?

允许,但需遵循打包工具的规则:

  • src目录的核心作用是隔离项目代码与根目录的配置、测试等文件,并非严格限制只能放项目模块
  • 可存放辅助模块、数据文件、子项目包等,但需要被打包配置文件(如pyproject.toml、setup.py)明确声明,否则不会被包含在发布到PyPI的包中
  • 临时脚本、未配置的非必要文件可以放在src下,但不会被pip安装到用户环境

2. src下添加mypkg2并发布后,用户能否import mypkg和mypkg2?

这个理解是正确的:

  • 只要在打包配置中正确识别这两个包(比如在pyproject.toml的packages字段使用find: {where = ["src"]},或者显式列出["mypkg", "mypkg2"]}),发布到PyPI后,用户执行pip install时,两个包都会被安装到Python的site-packages目录
  • 安装完成后,用户可以直接通过import mypkg和import mypkg2导入这两个包

官方规范依据

根据PEP 621(标准项目元数据)及setuptools官方文档,src布局下的顶级Python包(含__init__.py的常规包,或Python 3.3+的命名空间包),只要被打包配置正确纳入,就会被包含在发布包中并可被用户导入。

内容的提问来源于stack exchange,提问作者lofidevops

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 08:07:04