对于Python模块,要声明的标准全局变量是什么?

时间:2013-01-21 17:30:27

标签: python

在阅读其他Python模块时,我发现许多人经常在其源文件中包含__version____author__个全局变量(甚至在PEP3001中提及)。我想用一组合理的变量来记录我的代码。什么是可能通常包含的全局变量列表?

2 个答案:

答案 0 :(得分:2)

这些全局变量没有特定的标准 - 正如您所链接的PEP所述,他们试图达到标准,但尚未以任何单一形式被普遍接受。

真正的标准是PyPI元数据,它使用setup.py(或兼容的接口)在模块的distutils文件中指定。以下是包装教程中的示例:

from distutils.core import setup

setup(
    name='TowelStuff',
    version='0.1.0',
    author='J. Random Hacker',
    author_email='jrh@example.com',
    packages=['towelstuff', 'towelstuff.test'],
    scripts=['bin/stowe-towels.py','bin/wash-towels.py'],
    url='http://pypi.python.org/pypi/TowelStuff/',
    license='LICENSE.txt',
    description='Useful towel-related stuff.',
    long_description=open('README.txt').read(),
    install_requires=[
        "Django >= 1.1.1",
        "caldav == 0.1.4",
    ],
)

http://guide.python-distribute.org/creation.html

答案 1 :(得分:1)

使用distutils(或超集setuptools)来提供有关项目的元数据。

特别是在使用setuptools时,该元数据可通过pkg_resources module发现并重复使用。

__version__等全局变量没有标准,甚至对于Python stdlib也没有标准,这就是为什么在用于Python 3的stdlib中提供这些元数据的努力并没有达到任何目的。

我可以推荐Python Packaging User Guide作为如何正确打包项目的入门知识。