我是否需要将dist文件夹提交到git才能使用git中的pip安装软件包?

Dan*_*Dan 4 python git pip package python-3.x

我想为我的内部团队重用一些代码。我的计划是创建一个程序包,然后让人们pip直接使用我们的git repo 安装该程序包。即如此处所示:https : //pip.pypa.io/en/latest/reference/pip_install/#git

我的问题是,我要将dist文件夹提交到git吗?pip寻找什么?

还是有更好的方法在团队内部(跨许多不同项目)共享/重用代码?

我从这里使用了.gitignore文件(这是github的默认Python .gitignore文件吗?),它忽略了所有dist文件:

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
Run Code Online (Sandbox Code Playgroud)

但是当我尝试从存储库安装时,将它们从存储库中排除似乎是错误的。

小智 5

您不需要提交dist文件夹。 pip实际上只需要存储库具有一个setup.py文件以及要安装的软件包和/或模块。

  • 如果是这样,我为什么要创建 dist 文件夹?或者只是为了让文件更小并为 pypi 更好地打包?所以就我而言,由于我不使用 pypi,所以我不需要创建 dist 文件夹? (3认同)

hoe*_*ing 5

dist是包含最终构建结果的目录的默认名称:您的项目已准备好进行分发,即打包到pip其他包管理器知道如何安装的文件中:

$ python setup.py sdist --help
...
  --dist-dir (-d)   directory to put the source distribution archive(s) in
                    [default: dist]
Run Code Online (Sandbox Code Playgroud)

因此,忽略该目录及其所有内容是安全的.gitignore。如果您不打算将项目的安装文件上传到 PyPI 并打算通过传递 Git url 来安装它,您甚至不需要该dist目录,可以安全地删除它。一旦您发出任何 dist 命令(sdistbdist、等),bdist_wheel它都会重新创建。bdist_rpm