给Python项目添加版本控制/编号(?)
目前我在做Java项目时,使用Maven来管理版本,这样我可以完全控制版本。但是现在我有一个Python项目,我准备把它标记为0.2.0
,但这个项目没有版本控制。所以如果我以后再看到这段代码,就不知道它是什么版本了。
我该如何给我的Python项目添加版本控制,就像Maven对Java项目那样?
3 个回答
3
蚂蚁的回答是对的,但我想补充一点,你的模块可以定义一个 __version__
变量。根据 PEP 8 的规定,这个变量可以手动填写,也可以通过版本控制工具像Subversion或CVS来自动生成。比如说,如果你有一个叫做thingy的模块,里面有一个文件 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'],
)
3
创建一个 distutils 的 setup.py 文件。这就像是 Python 里的 maven pom.xml,格式大致如下:
from distutils.core import setup
setup(name='foo',
version='1.0',
py_modules=['foo'],
)
如果你想要像 maven 那样的依赖管理,可以看看 setuptools。
5
首先,maven 是一个构建工具,和版本控制没有关系。用 Python 的话,你其实不需要构建工具,因为没有什么需要“构建”的东西。
有些人喜欢创建 .egg
文件来分发。这是 Python 中最接近“构建”的东西了。创建这个文件需要一个简单的 setup.py
文件。
你可以在源代码中使用 SVN 的关键字替换,像这样。记得为那些需要使用这个功能的模块启用关键字替换。
__version__ = "$Revision$"
这样可以确保版本或修订字符串通过 SVN 强制写入你的源代码中。
你还应该在你的 setup.py
文件中包含版本关键字。