gpt4 book ai didi

Python Setuptools 和 PBR - 如何使用 git 标签作为版本创建包版本?

转载 作者:行者123 更新时间:2023-12-02 06:31:21 25 4
gpt4 key购买 nike

如何使用 setuptoolspbr 实际创建使用 git repo 标记进行版本控制的 python 包的发行版/发行版?

有大量有关所需基本设置和配置的信息:

但是关于如何实际创建发行版的简单信息在哪里?

即我正在寻找任何命令找到带有版本信息的 git 标签并将其 pull 入配置信息,以便可以分发带有新版本信息的源,并且可以使用所描述的方法从脚本中发现版本信息在 this answer .

<小时/>

其他详细信息

我正在开发一个项目,该项目将仅通过 git 存储库分发给其他开发人员,而不是通过 PyPi。该项目将使用 pyinstaller 作为可执行文件发布给用户,因此此包分发仅用于几个关键目的:

  1. 为其他开发人员安装/设置软件包,以便可以干净地重新创建依赖项/环境。
  2. 管理版本控制 - 当前计划是使用 pbr 从 Git 存储库标签生成版本,因此这些标签可以成为我们版本控制的真实来源
  3. 使用 pbr 从 Git 自动生成其他普通项目,例如作者、manifest.in 文件、发行说明等。

由于 setuptools 文档专注于使用 PyPipip 以及 pbr 设置完全可分发和可重用的软件包> 文档仅真正告诉您如何修改 setuptools 配置以使用 pbr,我找不到有关如何运行分发/发布过程的信息。

我确信它存在于文档中的某个位置,但在几次错误的启动之后我在这里询问。我看到的每一个地方都暗示着每个人要么知道如何做到这一点,要么它只是作为过程的一部分神奇地发生。

我只是错过了显而易见的事情吗?

<小时/>

更新:

根据sinoroc的回答,看来我需要研究开发模式安装。即任何开发该项目的人都将从 git 克隆,然后使用 setuptools 开发安装模式进行安装。

这不是原始问题的直接一部分,而是暗示的,我相信处于相同情况的人会感兴趣(我无法轻易找到信息)。

更多信息可以在他关于更新一些元数据的答案中找到,并通过 this setuptools documentation link to working in "Development Mode"

最佳答案

简而言之:

  • python3 setup.py sdist
  • python3 setup.py bdist_wheel

How do I actually create a release/distro of a python package that uses a git repo tag for the versioning, using setuptools and pbr?

使用 setuptools 创建 Python 包(源和轮子)发行版的常用命令是:python3 setup.py sdistpython3 setup.py bdist_wheel 。默认情况下,可以在 dist 目录中找到这些发行版。

Since setuptools docs focus on setting up a fully distributable and reusable package with PyPi and pip, and pbr docs only really tell you how to modify setuptools configuration to use pbr, I can't find the info on how to just run the distribution/release process.

确实,setuptools 没有记录这一点。它只记录了与 distutils 的差异,而且确实令人困惑。请参阅下面的实际文档...

But where is the simple info on how to actually create the distro?

<小时/>

更新

由于您不打算在诸如 PyPI 之类的索引上发布项目的发行版,并且您计划使用 pyinstaller 来代替,那么您确实很可能可以忽略 setuptools 命令,例如 sdistbdist_wheel

您仍然可能想了解开发阶段的这些命令:

  • 使用诸如python3 setup.py --versionpython3 setup.py --fullname之类的命令来确定setuptools(以及您的情况下的pbr)是否正在捕获正确的信息。
  • 使用python3 setup.pydevelop(或pip install --editable.)将伪链接(egg-link)放置在您的站点包指向您正在进行的工作。这样您的更改始终已安装并且可以导入。重要提示:不要使用python3 setup.py install,这会将当前版本复制到站点包,并且无法导入较新的更改。

现在我不知道一旦您转向pyinstaller,这一切将如何工作。特别是因为您提到您希望可以从脚本中发现元信息(例如版本号)。 setuptools pkg_resources 技术可能在 pyinstaller 上下文中起作用,也可能不起作用。

关于Python Setuptools 和 PBR - 如何使用 git 标签作为版本创建包版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58491577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com