2012-03-30 4 views
2

간단한 Python 모듈을 작성하여 pip로 배포하려고합니다. 또한 Bash 완성 파일을 모듈과 함께 설치하려고합니다. Python 2.7.1+ 및 pip 0.8.2를 사용하여 모듈을 설치하고 있습니다. 내가 pip install -e .으로 패키지를 설치하려고하면, 배쉬 완료 파일이 패키지와 함께 설치되지 없구요 이제distutils/pip와 함께 Bash 완성을 설치하십시오.

setup(
    name='jenkinsmon', 
    version='0.0.1', 
    description='Jenkins Job Monitor', 
    long_description=open('README.txt').read(), 
    scripts=['bin/jenkinsmon'], 
    data_files=[ 
     ('/etc/bash_completion.d', ['extras/jenkinsmon.completion']), 
    ], 
    install_requires = [ 
     'autojenkins', 
     'argparse' 
    ], 
) 

:

나는이 setup.py 있습니다.

MANIFEST.in : - 완료 파일이 설치되지 않습니다

include extras/jenkinsmon.completion 

그러나이 또한 도움이되지 않습니다 는 또한 설명 here처럼 MANIFEST.in을 지정하여 해결 방법을 시도했다. Bash 완료 파일을 설치하려면 어떻게해야합니까?

답변

0

내 오류 (일반적으로 pip 설명서를 읽지 않은 것)는 pip install 매개 변수에 -e을 추가하는 것입니다. 이는 "편집 가능"모드로 설치한다는 의미입니다. --editable 또는 -e 옵션을 사용하여 documentation

말을 인용, 주사위는 버전 관리 저장소에서 직접 를 설치하는 기능을 가지고 있습니다 (이것은 현재, 의욕, 힘내 및 바자를 서브 버전 지원) :

각각의 VCS에 대한 명령 줄 클라이언트에 밖으로

pip install -e svn+http://svn.colorstudy.com/INITools/trunk#egg=initools-dev

이 옵션 껍질, 은 그래서 당신은 VCS가 시스템에 설치되어 있어야합니다. repo URL은 svn + (또는 hg +, git + 또는 bzr +)로 시작하고 # egg = packagename으로 끝나는 이어야합니다. 그렇지 않으면 pip는 VCS 자체에서 지원하는 동일한 URL 형식 및 와이어 프로토콜 을 지원합니다.

핍은 (즉 pip_test_env/SRC/initools-DEV)에 VIRTUALENV 내부 SRC/디렉토리에 소스의 repo를 체크 아웃 한 다음 해당 소스의 repo에 개발있는 setup.py 파이썬 를 실행합니다. 이 코드는 직접 의 코드를 virtualenv의 사이트 패키지 디렉토리에 "연결"합니다 ( easy-install.pth에 repo 디렉토리 추가). 소스 체크 아웃의 변경 사항은 즉시 적용됩니다.

계속 사용하려는 로컬 VCS 체크 아웃이있는 경우 은 동일한 방식으로 에 "editable"을 설치하기 위해 pip install -e path/to/repo를 사용할 수 있습니다.

따라서 시스템에 패키지를 영구적으로 설치하려면 -r을 제거해야하며, 그 다음에 Bash 완성 파일이 예상대로 설치됩니다.

1

MANIFEST.in은 소스 배포본에 포함될 추가 파일만을 설명합니다. 설치와 관련이 없습니다.

python setup.py install을 실행하면 파일이 설치됩니까? pip는 setuptools에 의존하므로 어쩌면 하나의 "egg"디렉토리/zipfile에 모든 것을 설치하는 동작을 상속받을 수 있습니다.

+0

'python setup.py install'을 실행하면 파일이 실제로 설치됩니다. 하지만 필자는 pip와 함께 설치하기를 원합니다. 원격 Git 저장소에서 설치할 수 있기 때문입니다. virtualenv 그룹 http://groups.google.com/group/python-virtualenv?hl=ko에서 물어볼 것입니다. – ifischer