2

동일한 virtualenv에있는 여러 패키지에서 python setup.py develop을 실행하면 변경 후에 다시 설치하지 않고도 두 패키지를 모두 개발할 수 있습니다.어떻게 로컬 "개발 모드"패키지의 설치를 자동화 할 수 있습니까?

나는 최근이 프로젝트에서 기능을 추출하여 별도의 패키지로 만들었는데, 현재이 방법으로 개발 중입니다.

setup.py 파일에서이 종속성을 표현할 수있는 방법이 있습니까? 새로운 개발자는 기본 프로젝트의 디렉토리에서 python setup.py develop을 한 번만 실행할 수 있습니까?

+0

나는이 일을 어떻게 계획 할 것인지 잘 모르겠습니다. 'python setup.py develop'는'setup.py'가있는 디렉토리를 찾는 것에 달려 있습니다. 사용자 앨리스는 패키지 A를 하나의 디렉토리에 가지고 있고 사용자 Bob은 패키지 A를 다른 디렉토리에 가지고 있습니까? 또는 모든 디렉토리가 서로 상대적으로 설정되어 있습니까? –

+0

@MarkHildreth - 모두 소스 제어에서 같은 폴더 계층에 속해 있으므로'project_A /../ project_B/setup.py'에있는'project_B/setup.py'를 신뢰할 수 있습니다. 그래도 setup.py는 그 일에 적합한 도구가 아닐 수도 있다는 점에서 좋은 지적이 있습니다. –

+0

설정하고자하는 패키지의 목록이 있다면, 필요한 것은 makefile과 같은 짧은 스크립트로 각 프로젝트에 cd하고'python setup.py [user options]'을 실행하면됩니다. 이 작업을 수행하는 마스터'setup.py '를 함께 사용하는 것은 어렵지 않습니다. – alexis

답변

2

나는 당신의 질문에 대한 대답이 단순히 "아니오"라고 믿고 두려워한다.

setup.py는 사용자의 필요에 맞지 않습니다. 그럼에도 불구하고 트릭을 찾는 것은 새로운 개발자에게 더 많은 문제를 야기 할 수 있습니다.

슬프게도 나는 완벽한 대안을 제공 할 수 없습니다 :

  • Loouk의 zc.buildout를 루카스 그라프는 주석에 설명 된대로.
  • 개발자의 플랫폼을 알고있는 경우 모든 구성이 포함 된 압축 된 빠른 시작 작업 디렉토리 ( )를 배포하십시오.
  • 전체 설정을 수행하는 쉘 스크립트를 제공하십시오.
  • devs에게 setuptool (setup.py) 및 virtualenv, 의 올바른 사용 및 철학을 가르치고 필요한 패키지마다 "setup.py develop"를 명시 적으로 호출하게합니다.

명시 적으로 암시 적으로 저장하는 것이 더 나은 것은 python zen의 일부입니다. 나는 마지막 하나를 갈 것이지만, YMMV.

+0

위르겐, 현상금 기간에 답변을 게시 했습니까? 그렇다면, 나는 당신에게 50 명 주무기를 주려고 다시하지 않아도됩니다. 너는 그것을받을 자격이있다. ;-) –

+0

나는 마감 시간 전에 약 3 시간을 게시하고, 더 나은 것이 나타나면 기다리고 있습니다. –

-1

이 모드에서는 로컬 개발 파일을 사용하여 development mode을 설치할 수있는 python setup.py develop을 사용할 수 있습니다. Cribbed에서 django-tastypie.

관련 문제