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

向Python项目添加版本控制/编号(?),python,version-control,Python,Version Control,目前,对于我的Java项目,通过将其声明为Maven项目,我拥有完整的版本控制。然而,我现在有一个Python项目,我将标记它为0.2.0,它没有版本控制。因此,如果我在以后访问此代码,我将不知道它是什么版本 如何向Python项目添加版本控制,就像Maven为Java添加版本控制一样?创建setup.py文件。这是相当于maven pom.xml的Python,它看起来像这样: from distutils.core import setup setup(name='foo', v

目前,对于我的Java项目,通过将其声明为Maven项目,我拥有完整的版本控制。然而,我现在有一个Python项目,我将标记它为
0.2.0
,它没有版本控制。因此,如果我在以后访问此代码,我将不知道它是什么版本

如何向Python项目添加版本控制,就像Maven为Java添加版本控制一样?

创建setup.py文件。这是相当于maven pom.xml的Python,它看起来像这样:

from distutils.core import setup
setup(name='foo',
      version='1.0',
      py_modules=['foo'],
      )

如果您想要像maven一样进行依赖关系管理,请看一看。

首先,maven是一个构建工具,与版本控制无关。您不需要Python的构建工具——没有什么可“构建”的

有些人喜欢创建
.egg
文件进行分发。它与Python的“构建”非常接近。这是一个简单的
setup.py
文件

您可以像这样在源代码中使用SVN关键字替换。请记住为将具有此功能的模块启用关键字替换

__version__ = "$Revision$"
这将确保SVN将版本或修订字符串强制输入到源代码中


您还应该在
setup.py
文件中包含版本关键字。

Ants的答案是正确的,但我想补充的是,您的模块可以根据定义一个
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu版本
变量,该变量可以手动填充,也可以通过Subversion或CVS填充,例如,如果您有一个模块thingy,使用文件
thingy/\uuuu init\uuuu.py

___version___ = '0.2.0'
然后可以在setup.py中导入此版本:

from distutils.core import setup
import thingy
setup(name='thingy',
      version=thingy.__version__,
      py_modules=['thingy'],
      )

我不知道Maven,但是为什么你不能使用一些不特定于Python的简单版本控制系统(svn、git、bazaar…)呢?我使用的是svn,但是它与Maven不同,它与Maven.Hm一起使用,你想在源文件中看到版本吗?我不知道svn是否有您可以使用的标记(基本上,它们在签出时被更改为包含您想要的数据,例如版本号、作者等),但至少使用git,您可以为此编写一个非常简单的钩子。我想您谈论的是“版本编号”,而不是“版本控制”。版本控制通常定义为Makis提到的工具,如svn、git、hg、bzr。问题的副本。简短回答,使用
\uuuuuuuuuuuuuuuuu版本