일부 유용한 Python 패키지는 pypi에서 깨지고 유일한 버전은 개정 제어 시스템의 특정 개정판입니다. setup.py
으로 표시 할 수 있습니까? 예 :파이썬 패키지가 다른 파이썬 패키지의 특정 버전 제어 개정판에 의존 할 수 있습니까?
requires = 'svn://example.org/useful.package/[email protected]'
?
일부 유용한 Python 패키지는 pypi에서 깨지고 유일한 버전은 개정 제어 시스템의 특정 개정판입니다. setup.py
으로 표시 할 수 있습니까? 예 :파이썬 패키지가 다른 파이썬 패키지의 특정 버전 제어 개정판에 의존 할 수 있습니까?
requires = 'svn://example.org/useful.package/[email protected]'
?
당신은 두 가지 일을 할 필요가있다. 첫째, 당신이 원하는 정확한 버전, 예를 들어 필요합니다
install_requires = "useful.package==1.9dev-r1234"
를하고 지정하는 dependency_links
설정을 포함 할 곳을 찾는 방법은 다음과 같습니다
dependency_links = ["svn://example.org/useful.package/[email protected]#egg=useful.package-1.9dev-r1234"]
참고 dependency_links
URL의 버전 #egg=
부분은 정확히해야은 (는) install_requires
에 지정한 것과 일치합니다. 이 두 부분을 함께 연결하는 것입니다.
setuptools는 링크에서 #egg 태그를보고 해당 정확한 버전의 패키지에 사용할 수있는 다운로드 URL로 URL을 저장합니다. 그런 다음 나중에 해당 요구 사항을 해결하려고하면 정확한 SVN URL을 다운로드해야합니다.
(단, 이 실제로 일 때 대상 SVN 개정판은 실제로 해당 이름과 버전으로 달걀을 작성해야합니다. 그렇지 않으면 런타임에 종속성이 실패합니다. 의존하는 패키지는 기본 빌드 버전 번호로 SVN 수정 태그를 사용합니다.)
모호한 버전의 다른 패키지가 필요하고 다른 버전과 호환되지 않을 경우 해당 버전의 패키지를 다른 버전과 함께 배포하기 만하면됩니다. 필요한 경우 자신의 네임 스페이스에 넣어서 사용중인 버전인지 확인하십시오.
특정 버전의 패키지를 릴리스 할 수 있지만 함께 배포해야합니다. 표준 파이썬으로 자동으로 다운로드 할 수있는 방법은 없습니다.
그러나 Buildout을 사용하고 환경을 복제 할 수있는 buildout.cfg를 만들 수 있습니다. mr.developer와 같은 확장 기능을 사용하면 특정 버전을 체크 아웃하고 설치할 수 있습니다.
http://pypi.python.org/pypi/zc.buildout http://pypi.python.org/pypi/mr.developer
나는 setup.py
에서이 참조 할 수 있지만 pip
간단한 요구 사항 파일과 파이썬 패키지의 특정 버전을 체크 아웃 할 수있는 방법을 생각하지 않았습니다. requires.txt
이라는 요구 사항 파일을 사용하면 pip install -r requires.txt
은 해당 파일에 나열된 모든 패키지 (및 해당 종속성)를 설치합니다.
여기 내 요구 사항 파일의 일부입니다. -e
으로 시작하는 줄은 내 프로젝트를 포함하여 버전 관리 (git, svn 또는 mercurial)에서 패키지의 특정 버전을 체크 아웃하고 편집 가능한 형식으로 설치합니다. pip freeze
은 설치된 모든 패키지를이 형식으로 나열합니다.
requires.txt
는 :
-e hg+file:///home/me/my-private-project#egg=myproject
-e hg+http://bitbucket.org/ianb/[email protected]#egg=WebOb
-e svn+http://svn.sqlalchemy.org/sqlalchemy/[email protected]#egg=SQLAlchemy
-e svn+http://svn.zope.org/repos/main/z3c.saconfig/[email protected]#egg=z3c.saconfig
## The following requirements were added by pip --freeze:
APScheduler==1.01
simplejson==2.0.9
... (many more)
편집 가능한 종속성을 갖고 싶습니까? –
가끔 있습니다. – joeforker
그래, 그것은/진짜/일반적인 경우에 작동하지 않습니다 ... 난 그냥 지금 핍를 사용합니다. – joeforker
실제로 "find_links"가 "dependency_links"가되어서는 안됩니까? –
고마워요, 가브리엘. 나는 그것을 고쳤다. –