2009-11-24 9 views
2

현재 Java 프로젝트에서 Maven 프로젝트로 선언하여 전체 버전을 제어 할 수 있습니다. 그러나 나는 지금 버전 제어가없는 0.2.0을 태그하려고하는 파이썬 프로젝트를 가지고있다. 따라서 나중에이 코드를 건너 뛸 것인가? 나는 어떤 버전이 될지 모르겠다.Python 프로젝트에 버전 관리/번호 매기기 (?) 추가

Maven에서 Java와 동일한 방식으로 버전 컨트롤을 Python 프로젝트에 추가하려면 어떻게합니까?

+0

내가 메이븐 모르겠지만, 이유가 없습니다 당신이 사용 할 수 있습니다

___version___ = '0.2.0' 

당신은 setup.py에서이 버전을 가져올 수 있습니다 일부 간단한 버전 제어 시스템은 파이썬 (svn, git, bazaar ...)과 관련이 없습니까? – Makis

+0

SVN을 사용하고 있습니다 만, 이것은 maven과 동일하지 않습니다. *는 * maven과 함께 사용됩니다. – Federer

+0

흠, 소스 파일의 버전을보고 싶습니까? 나는 svn이 당신이 사용할 수있는 태그를 가지고 있는지 모른다. (기본적으로 체크 아웃 시간에 당신이 원하는 데이터, 예를 들어 버전 번호, 저자 등을 포함하도록 바꾼다.) 그러나 적어도 git에서는 아주 간단한 훅을 쓸 수있다. 그에 대한. – Makis

답변

5

먼저 maven은 빌드 도구이며 버전 제어와 관련이 없습니다. 파이썬에서 빌드 도구가 필요하지 않습니다. "빌드"할 것이 없습니다.

일부 사람들은 배포 용 파일 .egg을 만들고 싶습니다. 파이썬과 마찬가지로 "빌드"에 가깝습니다. 간단한 setup.py 파일입니다.

소스에서 SVN 키워드 대체를 사용할 수 있습니다. 이 모듈을 키워드로 대체하는 것을 잊지 마십시오.

__version__ = "$Revision$" 

SVN에 의해 ​​버전 또는 개정 문자열이 소스로 강제 전송됩니다.

setup.py 파일에도 버전 키워드를 포함해야합니다.

2

distutils setup.py 파일을 만듭니다. 이것은이 같은 형태, pom.xml 파일을 받는다는하는 파이썬 것과 같습니다

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

당신이 받는다는 등의 의존성 관리를 원하는 경우

setuptools를보십시오.

2

개미의 대답은 정확하지만 모듈에 __version__ 변수를 정의 할 수 있다고 덧붙이고 싶습니다. PEP 8에 따르면 수동으로 또는 Subversion이나 CVS를 통해 입력 할 수 있습니다. 당신이 파일 thingy/__init__.py와 모듈 꼬추가있는 경우 :

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