目前我的Java项目,通过将其声明为Maven项目,我可以完全控制版本。但是我现在有一个Python项目,我要标记0.2.0
,它没有版本控制。因此,我是否应该在以后的日程中使用此代码,我不会知道它是什么版本。
如何将版本控制添加到Python项目中,就像Maven为Java做的那样?
答案 0 :(得分:5)
首先,maven是一个构建工具,与版本控制无关。你不需要使用Python的构建工具 - 没有什么可以“构建”。
有些人喜欢创建.egg
文件进行分发。它与Python的“构建”非常接近。这是一个简单的setup.py
文件。
您可以在源代码中使用SVN关键字替换。请记住为具有此功能的模块启用关键字替换。
__version__ = "$Revision$"
这将确保版本或修订字符串被SVN强制进入您的源。
您还应该在setup.py
文件中包含版本关键字。
答案 1 :(得分:2)
创建distutils setup.py文件。这是Python等同于maven pom.xml,它看起来像这样:
from distutils.core import setup
setup(name='foo',
version='1.0',
py_modules=['foo'],
)
如果您想要像maven这样的依赖管理,请查看setuptools。
答案 2 :(得分:2)
Ants的答案是正确的,但我想补充一点,根据PEP 8,您的模块可以定义__version__
变量,可以手动填充或通过Subversion或CVS填充,例如:如果你有一个模块,有一个文件thingy/__init__.py
:
___version___ = '0.2.0'
然后,您可以在setup.py中导入此版本:
from distutils.core import setup
import thingy
setup(name='thingy',
version=thingy.__version__,
py_modules=['thingy'],
)