2013-09-16 19 views
12

Hem özel hem de özel bağımlılıkları olan özel bir proje için setup.py yükleme dosyasını yazmaya çalışıyorum. Halka açık olanlar PyPI'de, özel olanlar ise simplepypi'u çalıştıran bir sunucuda barındırılıyor.Setup.py'yi kullanarak özel bir PyPI'de barındırılan paketleri nasıl yükleyebilirim?

Yükleme sırasında hem özel hem de özel bağımlılıkların çözülmesini ve getirilmesini isterim.

Ben böylece setup.py benim bağımlılıkları eklendi:

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'], 
    ... 
) 

Ben komut python setup.py sdist kullanarak paket tarball kurmak ve pip install --verbose path/to/tarball.tar.gz kullanarak aktive virtualenv takın.

Bununla birlikte, pip günlük çizgileri özel PyPI sunucumdan herhangi bir yerde bahsetmiyor ve https://pypi.python.org/simple/ iki kez sorgulanmış görünüyor.

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... 

Neyi eksik?

Çok teşekkür ederim!

Eğer simplepy ait doc gibi ev sahibi belirtmek yoktu gibi görünüyor

cevap

10

bunu "simplepypi" çalıştırmak kullanmak için

gibi iyi hostname'iyle kurulum sizin ~/.pipyrc gerektiğini söyledi.

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] 
    ... 

sonra bunu

python setup.py sdist upload -r local 

paketinizi yüklersiniz ve orada

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

bu yardımcı olacaktır Umut onu yükleyebilir: aracılığıyla paketler yükleyebilirsiniz.

+1

Onarıyorum! Benim hatam, işaret ettiğin gibi, '' 'http://127.0.0.1:8000/pypi/ '' 'URL’ini' 'dependency_links'' için eklemem gerekiyordu. ** Uyarı **: "http://127.0.0.1:8000/pypi/" '' değil ve '' 'http://127.0.0.1:8000/pypi '' 'olarak değil. İkincisi bir 404 döndürür. –

+0

güzel ateş! Teşekkürler –

İlgili konular