2013-09-16 4 views
12

공개 및 개인 종속성이 모두있는 개인 프로젝트 용으로 setup.py 설치 파일을 작성하려고합니다. 공용 호스트는 PyPI에서 호스트되는 반면, 개인 호스트는 simplepypi 서버에서 호스팅됩니다.setup.py를 사용하여 비공개 PyPI에서 호스팅되는 패키지를 어떻게 설치할 수 있습니까?

공용 및 개인 종속성을 모두 확인하고 설치 중에 가져 오는 것이 좋습니다.

내가 이렇게 setup.py 내 종속성을 추가 :

setup(
    ... 
    install_requires = [ 
     # public dependencies 
     'argparse==1.2.1', 
     'beautifulsoup4==4.1.3', 
     'lxml==3.1.0', 
     'mongoengine==0.8.2', 
     'pymongo==2.5.2', 
     'requests==1.1.0', 
     'Cython==0.18', 
     # private dependencies 
     'myprivatepackage1', 
     'myprivatepackage2' 
    ], 
    dependency_links=['http://pypi.myserver.com/packages'], 
    ... 
) 

내가 명령 python setup.py sdist을 사용하여 패키지 타르볼을 구축하고 pip install --verbose path/to/tarball.tar.gz를 사용하여 활성화 VIRTUALENV에 설치합니다.

그러나 pip 로그 라인은 내 개인 PyPI 서버를 언급하지 않으며 https://pypi.python.org/simple/은 두 번 쿼리 된 것 같습니다.

Running setup.py egg_info for package from file:///home/b/code/mapado/mypackage/dist/mypackage-0.5.1.tar.gz 
    running egg_info 
    creating pip-egg-info/mypackage.egg-info 
    writing requirements to pip-egg-info/mypackage.egg-info/requires.txt 
    writing pip-egg-info/mypackage.egg-info/PKG-INFO 
    writing top-level names to pip-egg-info/mypackage.egg-info/top_level.txt 
    writing dependency_links to pip-egg-info/mypackage.egg-info/dependency_links.txt 
    writing manifest file 'pip-egg-info/mypackage.egg-info/SOURCES.txt' 
    warning: manifest_maker: standard file '-c' not found 

    reading manifest file 'pip-egg-info/mypackage.egg-info/SOURCES.txt' 
    reading manifest template 'MANIFEST.in' 
    writing manifest file 'pip-egg-info/mypackage.egg-info/SOURCES.txt' 
Downloading/unpacking myprivatepackage (from mypackage==0.5.1) 
    Could not fetch URL https://pypi.python.org/simple/myprivatepackage/: HTTP Error 404: Not Found (myprivatepackage does not have any releases) 
    Will skip URL https://pypi.python.org/simple/myprivatepackage/ when looking for download links for myprivatepackage (from mypackage==0.5.1) 
    Could not fetch URL https://pypi.python.org/simple/myprivatepackage/: HTTP Error 404: Not Found (myprivatepackage does not have any releases) 
    Will skip URL https://pypi.python.org/simple/myprivatepackage/ when looking for download links for myprivatepackage (from mypackage==0.5.1) 
    Could not find any downloads that satisfy the requirement myprivatepackage (from mypackage==0.5.1) 
Cleaning up... 

무엇이 누락 되었습니까?

대단히 감사합니다!

당신이 simplepy의 문서와 같은 호스트를 지정 didnt는 것 같습니다

답변

10

는 당신이 "simplepypi"를 실행 사용하려면

같은 좋은 호스트 이름으로 설정하여 ~/.pipyrc 필요했다.

Modify your ~/.pypirc so it looks like: 

    [distutils] 
    index-servers = 
     pypi 
     local 

    [local] 
    username: <whatever> 
    password: <doesn't matter, see above> 
    repository: http://127.0.0.1:8000 

    [pypi] 
    ... 

그때 당신이 그것을

python setup.py sdist upload -r local 

에 패키지를 업로드 할 수 있습니다 거기

pip install -i http://127.0.0.1:8000/pypi <your favorite package> 

이 도움이 될 것입니다 희망에서 설치할 수 있습니다 : 다음과 같은 방법으로 패키지를 업로드 할 수 있습니다.

+1

해결했습니다! 제 실수는 여러분이 지적했듯이''http://127.0.0.1:8000/pypi/ '''URL을''dependency_links''에 추가해야했습니다. ** 경고 ** : "http://127.0.0.1:8000/pypi" "가 아닌"' "http://127.0.0.1:8000/pypi/"''이어야하며'' 후자는 404. –

+0

좋은 촬영을 반환합니다! 고마워 –