2010-01-27 3 views
2

나는 buildout.cfg와 setup.py를 가진 Foo /라는 프로젝트를 가지고있다. 이제 Bar/..라는 또 다른 프로젝트가 있으며 buildout.cfg와 setup.py도 있습니다. Bar /는 다양한 Python 모듈에 의존하기 때문에 setup.py에 install_requires=['lxml', 'SQLAlchemy']이 있습니다. Foo/Bar /에 의존합니다.Buildout : 수은을 통해 다른 Python 프로젝트를 포함 하시겠습니까?

하지만 아직 바가 출시되지 않았습니다. 막대의 모듈, lxml 및 SQLAlchemy를 가져올 수 있도록 막대/푸의 빌드 아웃을 어떻게 포함합니까?

Bar /가 수정 제어 시스템으로 수은을 사용한다고 가정합니다.

내 시도 : Buildout mercurial recipe은별로 도움이되지 않습니다. 이 아닌 경우은 Bar/setup.py의 install_requires에 대한 알을 자동으로 가져 와서 Bar/자체를 sys.path에 추가합니다.

실제 예를 : 여기 내 buildout.cfg이 (바 == mercurialrecipe 패키지)의 모습입니다 :

[buildout] 
parts = ... pyrtm ... 
develop = . parts/pyrtm 
eggs = pyrtm 

[pyrtm] 
recipe = mercurialrecipe 
repository = http://bitbucket.org/srid/pyrtm 

... 

sys.path에 로컬 복제 mercurialrecipe의 경로가 포함되어 있지 않기 때문에이 작동하지 않습니다 (in parts/mr) 및 종속성 (parts/mr/setup.py)이 설치되어 있지 않습니다. 체크 아웃 할 수있는 경우

+0

다른 사용자가 같은 문제에 직면 해 있습니다. http://www.xml3k.org/LuisMiguel/PreparingBuildoutRecipe#UsingMercurialTODO –

답변

0

/저장소를 복제, 당신은 평소와 같이 파이썬 모듈을 개발할 수 있습니다 : 당신은 당신이 원하는 수은 조리법의 수은 체크 아웃로를 만들기 위해 수은 조리법을 사용하고

[buildout] 
... 
develop = src/Bar 
eggs = Bar 
+0

나를 위해 작동하지 않습니다. 도움이된다면 buildout.cfg의 일부로 질문을 업데이트했습니다. –

+0

해당 파트 아래에'Bar' egg (위 예제에서'mercurialrecipe')를 나열하면 buildout은 로컬 복사본을 선택하는 대신 PyPI에서이를 다운로드합니다. –

+0

흠 ... 그 문제를 해결해야합니다. 기묘한. 좀 더 세밀한 부분을 놓치고있어. 나는 그것을 시험해야 할 것이다. –

-1

을 발달 난으로 사용하십시오. 거기에는 거대한 순환 의존성이 있습니다.

"mr"부분을 실행하려면 Buildout에 수은 제조법이 필요합니다. 그래서 그것은 pypi에서 제조법을 움켜 잡습니다. 그것은 아직 그 제조법이 실제로 제조법을 다운로드한다는 것을 알지 못합니다.

+0

'mercurialrecipe'만을 예제로 사용했습니다. 문제는 보편적이며 다른 패키지에서도 발생합니다. 어쨌든,이 혼동을 피하기 위해 위의 예제 코드를 수정했습니다. –

1

나는이 문제를 해결 가고 발견하는 유일한 방법은 buildout에 여분의 경로를 추가하는 것입니다 :

[buildout] 
parts = ... pyrtm ... 
develop = . parts/pyrtm 
eggs = pyrtm 

extra-paths = parts/pyrtm/src 
# or wherever your pyrtm folder 
# could as well be extra-paths = pyrtm/ 
# if you your code is on same path as buildout.cfg. 

[pyrtm] 
recipe = mercurialrecipe 
repository = http://bitbucket.org/srid/pyrtm 

희망이 도움이됩니다.

관련 문제