2014-06-06 1 views
1

파이썬 라이브러리 용 소스 저장소가 3 개 (두 개의 재사용 가능한 라이브러리가있는 장고 웹 응용 프로그램) 인 buildout이 있습니다. 모든 것이 개발자의 관점에서 훌륭하게 작동하지만 지금은 배포 할 배포판을 만들고 싶습니다. 그래서 내 buildout.cfg에서 내가 가진 : 나는 계란으로 그 패키지 및 예를 들어, 그들을 설치하는 buildout을 어떻게 알 수 있습니까빌드 아웃 - 소스에서 달걀 설치하기

[buildout] 
parts = 
    django 
develop = 
    src/lib1 
    src/lib2 
    src/django_app 
eggs = 
    lib1 
    lib2 
    django_app 

[django] 
recipe = djangorecipe 
... 
eggs = 
    lib1 
    lib2 
    django_app 
    ... 

대신 eggs/ 링크가 원본으로 돌아 가기?

구축 후 수행 할 수있는 작업은 빌드 된 달걀 lib1lib2을 캡처하여 로컬 pypi repo에 업로드하는 것입니다. 제 대안은 수동으로 python setup.py bdist_egg을 실행하는 것입니다. 그러나 buildout에 대해 이미 알고 있어야합니다.

답변

0

달걀을 잡고 설치하는 것은 제작 및 호스팅과 다르므로 빌드 아웃 자체가 파이피 서버 또는 이와 유사한 것을 제공하지 않는 이유입니다.

그래서 ... 당신은 스스로 알맞은 알을 만들어야 만합니다. 어딘가에 그들을 배치 할 수 있습니다.

  • 라이브러리에 setup.py이 있다고 가정합니까? 좋은 릴리스의 경우 버전 번호를 업데이트하고 svn/hg/bzr/git에서 릴리스를 태그해야합니다. (이 작업을보다 쉽고 빠르게 수행하려면 zest.releaser을보십시오.)

  • 로컬로 설치할 수 있고 사용자 정의 패키지를 업로드 할 수있는 몇 가지 피피 클론이 있습니다. 그러나 가장 간단한 해결책은 어딘가에 릴리스가있는 디렉토리를 가지고 아파치 또는 nginx로 호스트하는 것입니다. https://stackoverflow.com/a/13354463/27401을 참조하십시오. 해당 URL을 [buildout] 부분에 find-links = http://example.com/my_packages/으로 추가하십시오. Buildout은 이제 그 페이지 내부를 볼 것입니다. (그래서 : apache가 그 디렉토리에있는 모든 파일을 나열하도록하십시오.) Setuptools는 표준 명명 체계 (mypackage-1.2.zip)를 사용합니다. 이것이 작동하는 방식입니다.

  • 남은 일은 파일을 서버의 해당 apache/nginx 디렉토리에 가져 오는 것입니다. 시작하려면 간단한 맞춤 스크립트만으로도 충분합니다. 자동화에 대한 자세한 내용은 tags2sdists을 참조하십시오. 소스 패키지와 패키지 릴리스를 배치 할 수있는 디렉토리가있는 디렉토리를 제공합니다. 알다시피, 빌드 아웃에서 bin/tags2sdists src/ var/packages/으로 실행할 수도 있습니다. 그러면 모든 태그에서 소스 패키지가 만들어져 var/packages/에 저장됩니다. 나중에 다른 곳에 복사하십시오.

관련 문제