【发布时间】:2014-06-29 10:43:31
【问题描述】:
应该在 setup.py 文件中同时提供 setup 函数 版本字符串和开发状态(参见 https://python-packaging-user-guide.readthedocs.org/en/latest/tutorial.html 和作为例子给出的项目 https://github.com/pypa/sampleproject/blob/master/setup.py)
这里有一个更简单的例子:
from setuptools import setup
import os
here = os.path.abspath(os.path.dirname(__file__))
# Get the version from the relevant file
with open(os.path.join(here, 'namepackage/_version.py')) as f:
exec(f.read())
# In namepackage/_version.py, there is just something like
# __version__= '1.1a2', where 'a' means alpha (see
# http://legacy.python.org/dev/peps/pep-0386/).
setup(
name='namepackage',
version=__version__,
# skip arguments for clarity
classifiers=[
# How mature is this project? Common values are
# 3 - Alpha
# 4 - Beta
# 5 - Production/Stable
'Development Status :: 4 - Beta'
]
)
在这种情况下,版本字符串写在文件名package/_version.py中,它还包含有关开发状态的信息,因此应该有一种方法可以将开发状态作为字符串('3 - Alpha ' 在本例中)来自版本字符串。否则,必须以一致的方式更改 _version.py 和 setup.py,这似乎不是很聪明(而且很容易忘记,这会导致信息不一致,如示例中所示!)。
Python 标准库中是否有执行此操作的函数?否则,有什么聪明的方法可以做到这一点?
【问题讨论】:
标签: python packaging setuptools