2017-04-20 17 views
2

pyenv/virtualenv를 사용하여 파이썬 종속성을 관리하는 응용 프로그램이 있습니다. 우리는 응용 프로그램에서 작업하는 모든 사람들이 동일한 파이썬 버전을 갖도록하고 싶습니다. 루비에서 나온 아날로그는 Gemfile입니다. 어느 정도까지, .ruby 버전.응용 프로그램 소스 제어에서 파이썬 버전을 어떻게 관리합니까?

파이썬에서 상응하는 기능은 무엇입니까? 그것은 .python 버전입니까? 나는 그 안에 보통 ".pyenv"라는 주석 아래에 꽤 많은 .gitignore를 보았습니다. 그 이유는 무엇입니까? 그리고 대안은 무엇입니까?

+0

응용 프로그램 또는 최종 사용자가 개발 중이라는 것을 의미합니까? – reptilicus

+0

@reptilicus 본질적으로 같은 문제입니다. 복제 후 개발자가 먼저해야 할 일은 편집 가능한 응용 프로그램을 설치 한 다음 테스트 스위트를 실행하는 것입니다. – wim

+0

virtualenv를 만들 때 특정 Python 버전을 지정하지 않는 이유는 무엇입니까? – reptilicus

답변

2

setuptools (24.2.0+)의 최신 버전을 사용하면 배포 수준에서 파이썬 버전을 제어 할 수 있습니다.

예를 들어

, 당신은 파이썬 3.6 (호환) 버전의 설치를 허용하고 싶었 가정을 지정할 수 :

# in setup.py 
from setuptools import setup 

setup(
    ... 
    python_requires='~=3.6', 
    ... 
) 
이 설정에 의해 지어 분포에 설치를 방해하는 메타 데이터를 연결 한 것

호환되지 않는 Python 버전. 이 기능이 제대로 작동하려면 클라이언트에 pip의 최신 버전이 있어야하며 이전 버전 (< 9.0.0)은이 메타 데이터를 확인하지 않습니다.

pip의 이전 버전을 사용하는 사람들에게 요구 사항을 확장해야하는 경우 setup.py 파일의 모듈 수준 어딘가에 sys.version을 명시 적으로 확인할 수 있습니다. 그러나이 해결 방법을 사용하면 패키지가 pip에 의해 계속 다운로드되므로 나중에 통역이 올바르지 않은 pip install 시도에서 실패 할 것입니다.

+0

그냥 @wim으로 확인하십시오. 이것은 라이브러리뿐 아니라 응용 프로그램을위한 것이 아닙니다. 예 : 웹 응용 프로그램 –

+1

lib 및 응용 프로그램 모두. 그것은'setup.py'로 무엇이든 유효합니다. 의존성이 있다고 언급 했으므로'setup.py'가 있어야합니다. – wim