开发pip模块发布到PyPI及Git平台需提交哪些文件到仓库
结论
你应该选择第4种方案。
原因说明
- 首先排除选项3:
src目录是你项目的核心源码,是所有构建产物的来源,必须提交到Git仓库,否则其他协作者拉取仓库后无法查看、修改代码,也无法自行构建出可用的pip包。 - 再排除选项2:
dist目录是执行python setup.py sdist bdist_wheel等构建命令后自动生成的产物目录,里面的压缩包、wheel文件都可以通过源码重新构建得到,属于临时生成文件,不需要提交到Git仓库。提交dist目录会无谓增加仓库体积,还容易出现不同版本构建产物冲突的问题,你只需要在每次发布PyPI前本地执行构建命令生成最新的dist内容即可。 - 再排除选项1:除了
venv虚拟环境目录外,项目运行、构建过程中还会生成很多不需要提交的临时文件,比如__pycache__缓存文件、*.pyc字节码文件、build构建目录、*.egg-info元信息目录、测试缓存目录等,这些都不应该提交到Git仓库,全量提交除venv外的所有文件会把大量无用文件上传到仓库。 - 选项4保留的文件都是项目必须的核心文件:
src:项目核心源码.gitignore:定义Git需要忽略的临时文件规则,避免无用文件被误提交LICENSE:开源协议文件,明确项目的开源许可规则,是开源项目必备文件README.md:项目说明文档,用于介绍项目功能、安装使用方法、贡献指南等信息setup.py:pip包的元信息配置文件,是构建pip包的核心配置
补充建议
你可以在.gitignore文件中添加以下规则,避免临时文件被误提交:
# 虚拟环境 venv/ .venv/ # 构建产物 dist/ build/ *.egg-info/ # Python缓存 __pycache__/ *.pyc *.pyo *.pyd # 测试相关 .pytest_cache/ .tox/ .coverage
内容的提问来源于stack exchange,提问作者udoyhasan
相关产品推荐
相关产品推荐

