PyPI에 게시 된 Python 라이브러리가 있습니다. 새 버전의 라이브러리를로드하기 전에 새 버전을 사용하도록 샘플 응용 프로그램을 업그레이드하여 테스트하려고합니다. 이 작업을 수행하는 pip 대상 디렉토리에 로컬 패키지 설치
는-e
(
--editable
) 플래그를 사용하여 "개발 모드"에서 작동하는 것입니다
$ pip install -e <my package root>
그리고 이것은 참으로 나의 지구 환경에 패키지를 설치 않습니다.
그러나 내 샘플 프로그램은 Google App Engine 용으로 작성되었으며 응용 프로그램 별 폴더 (내 경우에는 ./lib
)에 all third-party libraries be copied이 필요합니다. 나는 일반적으로 핍하는 -t
(--target
) 옵션을 사용하여 여기에 패키지를 설치 :
$ pip install -t lib/ <package>
그러나,이 -e
및 -t
옵션 arenotcompatible, 내 시도가 지정된 내 지역, 게시되지 않은 라이브러리를 설치하는 것으로 보인다 두 플래그를 함께 사용하여 대상 폴더가 실패합니다.
게시하기 전에 내 라이브러리 패키지를 사용자 지정 디렉토리에 설치하여 테스트 할 수 있습니까? 제프리 Godwyll의 Google App Engine Vendoring Done Right에서 지침을 적응
예,이은을 관리 할 수있는 좋은 방법입니다 의존성. 나는'mkdir lib' 줄이 잘못되었다고 생각합니다. 디렉토리가 이미 존재한다면,'ln -s'는'lib/site-packages -> env/lib/python2.7/site-packages'를 링크 할 것입니다. –
불행하게도,'pip install -e'는 site-packages 폴더에 "egg-info"파일 (가난한 남자의 심볼릭 링크)을 만들고, GAE'dev_appserver.py' 스크립트는 그것을 따라갈 수 없습니다. 어쨌든 응용 프로그램은 dev_appserver.py를 사용하여 실행할 때 로컬 종속성을 볼 수 없습니다. –
이 방법은 권장하지 않습니다. ** 모든 ** 로컬 설치 패키지를 앱과 함께 업로드합니다. 즉, 앱 파일 할당량을 초과하거나 샌드 박스와 충돌 할 수있는 라이브러리를 업로드 할 수 있으며, 배포 할 때 앱에 애매한 문제가 발생합니다. –