2013-05-09 70 views
5

我想分发一个Python包(我想使用setuptools ,我已经有一个可用的setup.py文件)以及相关文档 (使用Sphinx生成)。Python包:如何避免重新定义作者版本等?

我发现自己有点困惑,因为我必须在不同部分指定作者姓名,维护人员,版本,发行版,日期,电子邮件等。

我想知道是否有某种方式来只有一次软件包中定义这种公共信息 ,然后都在setup.py脚本 和.rst文件等等使用它。

这个问题的可能途径是什么?

回答

5

如果您使用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将建立的文档,有真理的那些共同价值观的单点。做得好。

适合我。希望能帮助到你!