2012-11-27 3 views
1

Dotcloud를 사용하여 장고 응용 프로그램을 배포하고 있습니다. 로컬에서 개발하는 동안, 필자는 (내 virtualenv에있는) 몇 가지 종속성의 코드 내에서 변경해야했습니다.dotcloud에서 종속성 코드를 변경하십시오. Django

내 질문은 : dotcloud에 배포하는 동안 종속성 (예 : django-registration 또는 django_socketio)을 동일하게 변경하는 방법이 있습니까?

도움 주셔서 감사합니다.

답변

1

여러 가지 방법이 있지만 모두가 깨끗하고/쉽거나/가능하지는 않습니다.

그 종속성은 github에,의 bitbucket, 또는 유사한 코드 저장소에있는 경우, 다음을 수행 할 수 있습니다

  • 포크 종속성,
  • 편집 포크, 당신의 requirements.txt 파일의 포크
  • 점 .

이렇게하면 종속성에 대한 추가 변경 사항을 추적하고 자신의 수정 내용을 이후 버전과 쉽게 병합 할 수 있습니다.

그렇지 않으면 코드에 (수정 된) 종속성을 포함시킬 수 있습니다. 매우 깨끗하지는 않지만 앱 크기가 커지지 만 괜찮습니다.

마지막으로 중요한 것은 postinstall 스크립트를 작성하여 수정할 .py 파일 (예 : import foo ; foopath = foo.__file__)을 찾은 다음 해당 파일에 패치를 적용하는 것입니다. 이것은 아마도 대부분의 시스템 관리자가 테러에 굴복하게 만들지 만 다음과 같이 언급 할 가치가 있습니다 :-)

+0

나는 첫 번째 해결책을 좋아합니다. 고마워요! –

+0

나는 동의한다, 첫번째 해결책은 중대한 응답이다. 내 것보다 훨씬 낫다. – jdotjdot

1

requirements.txt 아니요를 사용하는 경우, Dotcloud가 pypi에서 지정한 패키지를 다운로드하기 때문에 pypi에서이를 수행 할 방법이 없으며 분명히 virtualenv 내의 변경 사항이 될 수 없습니다. 패키지의 표준 버전에 반영됩니다.

편집 된 버전의 종속성을 사용하려면 작성한 다른 모듈과 같이 코드에 코드를 묶어야합니다 (import).