2013-09-16 7 views
12

मैं एक निजी परियोजना के लिए setup.py इंस्टॉल फ़ाइल लिखने की कोशिश कर रहा हूं, जिसमें सार्वजनिक और निजी दोनों निर्भरताएं हैं। सार्वजनिक पीईपीआई पर होस्ट किए जाते हैं, जबकि निजी वाले simplepypi पर चल रहे सर्वर पर होस्ट किए जाते हैं।मैं setup.py का उपयोग कर एक निजी पीईपीआई में होस्ट किए गए संकुल कैसे स्थापित कर सकता हूं?

मैं सार्वजनिक और निजी निर्भरताओं को हल करने और स्थापना के दौरान लाया जाना चाहता हूं।

मैं इस प्रकार 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 में इसे स्थापित।

हालांकि, पीआईपी लॉग लाइनों में कहीं भी मेरे निजी पीईपीआई सर्वर का उल्लेख नहीं है, और 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... 

मैं क्या याद आ रही है?

बहुत बहुत धन्यवाद!

उत्तर

10

की तरह आप simplepy के दस्तावेज़ की तरह अपने होस्ट निर्दिष्ट फ्लॉप यह लग रहा है ने कहा कि आप की तरह

अच्छा होस्ट नाम के साथ सेटअप अपने ~/.pipyrc करने की जरूरत है इसे चलाने के "simplepypi" का उपयोग करें। आप द्वारा संकुल अपलोड कर सकते हैं:

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'' में जोड़ना होगा। ** चेतावनी **: इसे '13" http://127.0.0.1:8000/pypi/ "' '' '' "और' '" नहीं होना चाहिए, जैसा कि http://127.0.0.1:8000/pypi "' ' बाद में 404 लौटाता है। –

+0

अच्छी शूटिंग! धन्यवाद –

संबंधित मुद्दे

 संबंधित मुद्दे