我想分发一个Python包(我想使用setuptools ,我已经有一个可用的setup.py文件)以及相关文档 (使用Sphinx生成)。Python包:如何避免重新定义作者版本等?
我发现自己有点困惑,因为我必须在不同部分指定作者姓名,维护人员,版本,发行版,日期,电子邮件等。
我想知道是否有某种方式来只有一次软件包中定义这种公共信息 ,然后都在setup.py脚本 和.rst文件等等使用它。
这个问题的可能途径是什么?
我想分发一个Python包(我想使用setuptools ,我已经有一个可用的setup.py文件)以及相关文档 (使用Sphinx生成)。Python包:如何避免重新定义作者版本等?
我发现自己有点困惑,因为我必须在不同部分指定作者姓名,维护人员,版本,发行版,日期,电子邮件等。
我想知道是否有某种方式来只有一次软件包中定义这种公共信息 ,然后都在setup.py脚本 和.rst文件等等使用它。
这个问题的可能途径是什么?
如果您使用distutils调用狮身人面像,则会覆盖您的案例。答案在sphinx/setup_command.py的文档中。从这个例子中,你的setup.py应该有一个看起来有点像这样的部分:
# this is only necessary when not using setuptools/distribute
from sphinx.setup_command import BuildDoc
cmdclass = {'build_sphinx': BuildDoc}
name = 'My project'
version = '1.2'
release = '1.2.0'
setup(
name=name,
author='Bernard Montgomery',
version=release,
cmdclass=cmdclass,
# these are optional and override conf.py settings
command_options={
'build_sphinx': {
'project': ('setup.py', name),
'version': ('setup.py', version),
'release': ('setup.py', release)}},
)
此后,呼唤python setup.py build_sphinx
将建立的文档,有真理的那些共同价值观的单点。做得好。
适合我。希望能帮助到你!
Python包装用户指南的示例项目采用了不同的方法。它解析文件sample/__init__.py
:
https://github.com/pypa/sampleproject/blob/master/setup.py
setup( name="sample", version=find_version('sample', '__init__.py'),