小编典典

如何在我的包中获取 setup.py (setuptools) 中定义的版本?

all

如何setup.py从我的包中获取定义的版本(用于--version或其他目的)?


阅读 80

收藏
2022-07-27

共1个答案

小编典典

查询已安装发行版的版本字符串

要在运行时从包内部检索版本(您的问题实际上是在问什么),您可以使用:

import pkg_resources  # part of setuptools
version = pkg_resources.require("MyProject")[0].version

存储版本字符串以供安装期间使用

如果你想反其道而行之(这似乎是这里的其他答案作者似乎认为你在问的问题),请将版本字符串放在一个单独的文件中,并将该文件的内容读入setup.py.

您可以在包中使用__version__一行创建一个 version.py,然后使用 setup.py 从 setup.py
中读取它execfile('mypackage/version.py'),以便它__version__在 setup.py 命名空间中设置。

安装期间有关竞争条件的警告

顺便说一句,不要按照此处另一个答案中的建议从 setup.py
导入您的包:它似乎对您有用(因为您已经安装了包的依赖项),但它会对您的包的新用户造成严重破坏,因为如果不先手动安装依赖项,他们将无法安装您的包。

2022-07-27