【问题标题】:Specify version for private git repos in setup.py在 setup.py 中指定私有 git 存储库的版本
【发布时间】:2020-03-13 14:35:51
【问题描述】:

如何在我的 setup.py 文件中为私有 repos 指定一个版本,以便只使用这个版本?

from setuptools import setup, find_packages
setup(
   name="my_module"
   version="1.0.4"
   install_requires=[
    "requests==2.20.0",
    "test @ git+ssh://git@xxxx/xxxxx/test.git",
   ],
   // etc. 
)

我的测试 git 项目是否必须具有任何属性才能读出版本?目前我只使用 setup.py 中的版本字段

from setuptools import find_packages, setup
setup(
  name="test",
  version="0.5.1",
  //etc.
)

【问题讨论】:

  • 让它指向一个特定的git标签
  • 你的意思是: git tag -a v$(python setup.py --version) -m '0.5.1' ?以及如何在 setup.py 中指定标签?此外 setup.py 文件中版本字段的用途是什么?
  • version 参数 setuptools.setup 用于设置分布中的 version 元数据字段(sdistwheel) 的项目。因此,如果项目的分布发布在索引上(例如 PyPI)并直接从那里安装项目,这很有意义。从 git 安装项目时,情况不同,git 存储库中没有分发,因此没有立即可用的元数据,直到 存储库已被克隆至少。所以指向一个 git tag 代替。

标签: python-3.x setup.py


【解决方案1】:

不完全确定,但如果我在install_requires 中没有记错的话,您可能会遇到以下情况:

MyProject @ git://git.example.com/MyProject.git@v1.0

当项目必须从 git 存储库(或其他代码版本控制系统)安装时,您不能像项目托管在索引上那样真正指向版本号(例如PyPI),但下一个最好的事情是你可以指向一个特定的git标签(或一个branch,或任何其他类型类似的参考,但 tag 可能是这个用例的最佳选择)。

另外,我可能错了,但纯 setuptools 可能不支持这种表示法。这意味着您很可能无法使用python setup.py developpython setup.py install,而应使用python -m pip install -e .python -m pip install .

参考资料:

【讨论】:

    猜你喜欢
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多