如何setup.py从我的包中获取定义的版本(用于--version或其他目的)?
setup.py
--version
要在运行时从包内部检索版本(您的问题实际上是在问什么),您可以使用:
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 命名空间中设置。
__version__
execfile('mypackage/version.py')
顺便说一句,不要按照此处另一个答案中的建议从 setup.py 导入您的包:它似乎对您有用(因为您已经安装了包的依赖项),但它会对您的包的新用户造成严重破坏,因为如果不先手动安装依赖项,他们将无法安装您的包。