【发布时间】:2020-12-14 11:27:41
【问题描述】:
为了在我将新发行版上传到 PyPi 时获得正确的版本,我有 setup.py 询问 PyPi 当前版本是什么(见下面的函数),递增它,并将其用作 version 的参数setuptools.setup 电话。
果然,pip 安装有效,但从源代码安装无效(无论如何,我们不希望安装的版本号不正确)。
我可以编写一个部署脚本来执行增量并使用版本号调用setup(并让setup.py 使用当前版本)。
但我猜有一个最佳实践工具可以做我想做的事吗?
def current_pypi_version(package: str) -> str:
req = urllib.request.Request(f'https://pypi.python.org/pypi/{package}/json')
r = urllib.request.urlopen(req)
if r.code == 200:
t = json.loads(r.read())
releases = t.get('releases', [])
if releases:
return sorted(releases)[-1]
【问题讨论】:
-
@phd:也许我的标题具有误导性。我可以获取当前的版本号(我的
current_pypi_version函数)并轻松实现。我的问题是关于在哪里放置这样的逻辑,因为 setup.py 可以用于打包(我很好)和安装(在这种情况下,我不应该使用增量版本)。
标签: python pypi python-packaging