给Python项目添加版本控制/编号(?)

2 投票
3 回答
4284 浏览
提问于 2025-04-15 16:20

目前我在做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 文件中包含版本关键字。

撰写回答