2011-12-20 15 views
12

के साथ एक पायथन पैकेज स्रोत टैरबॉल स्थापित करना मैं पाइप के माध्यम से स्थापित एक पाइथन स्रोत पैकेज का निर्माण करने का तरीका जानने का प्रयास कर रहा हूं। मैंने http://packages.python.org/an_example_pypi_project/setuptools.html और निर्दिष्ट निर्देशिकाओं में कई सरल परीक्षण फ़ाइलों पर वर्णित setup.py फ़ाइल के साथ एक परीक्षण प्रोजेक्ट बनाने का प्रयास किया।पाइप

python setup.py sdist साथ dist/an_example_pypi_project-0.0.4.tar.gz नामित परियोजना के लिए एक स्रोत टारबॉल बनाने के बाद, मैं ~/TEST/bin/pip install dist/an_example_pypi_project-0.0.4.tar.gz साथ ~/TEST नामक एक virtualenv वातावरण में स्थापित करने की कोशिश की।

$ ~/TEST/bin/pip install dist/an_example_pypi_project-0.0.4.tar.gz 
Unpacking ./dist/an_example_pypi_project-0.0.4.tar.gz 
    Running setup.py egg_info for package from file:///home/lebedov/an_example_pypi_project/dist/an_example_pypi_project-0.0.4.tar.gz 

Cleaning up... 
$ find ~/TEST -name "an_example*" 
$ 

ध्यान दें कि मैं easy_install का उपयोग कर टारबॉल से स्थापित करने में सक्षम था:

$ ~/TEST/bin/easy_install dist/an_example_pypi_project-0.0.4.tar.gz 
Processing an_example_pypi_project-0.0.4.tar.gz 
Running an_example_pypi_project-0.0.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-tfXxeW/an_example_pypi_project-0.0.4/egg-dist-tmp-N2QY_N 
warning: build_py: byte-compiling is disabled, skipping. 

warning: install_lib: byte-compiling is disabled, skipping. 

zip_safe flag not set; analyzing archive contents... 
Adding an-example-pypi-project 0.0.4 to easy-install.pth file 

Installed /home/lebedov/TEST/lib/python2.7/site-packages/an_example_pypi_project-0.0.4-py2.7.egg 
Processing dependencies for an-example-pypi-project==0.0.4 
Finished processing dependencies for an-example-pypi-project==0.0.4 
$ find ~/TEST/ -name "an_example*"         
/home/lebedov/TEST/lib/python2.7/site-packages/an_example_pypi_project-0.0.4-py2.7.egg 

मैं की उपेक्षा हूँ हालांकि पिप किसी भी त्रुटि फेंक नहीं है, यह पैकेज स्थापित करने के लिए नहीं लगता था इसे पीपी के साथ स्थापित करने के लिए पैकेज में कुछ कॉन्फ़िगर करें? मैं पायथन 2.7.2 का उपयोग कर रहा हूं, 0.6.21, वर्चुअलएन्व 1.7, और पीआईपी 1.0.2 वितरित करता हूं।

+1

समस्या तब उत्पन्न होती है जब मैं पाइप का आह्वान करता हूं, जबकि वर्तमान निर्देशिका वह है जिसमें परियोजना का स्रोत होता है। ऐसा प्रतीत होता है कि स्रोत वितरण के निर्माण के बाद बनाई गई .gg-info उपनिर्देशिका की उपस्थिति पाइप को भ्रमित करती है। सुनिश्चित नहीं है कि यह एक बग है - मैं पीआईपी डेवलपर्स से पूछूंगा। – lebedov

+2

भविष्य के संदर्भ के लिए, यहां जांच है: https://github.com/pypa/pip/issues/414 – lebedov

+0

यह मेरे प्रोजेक्ट के लिए काम करता है, और मेरे पास एक .gg-info भी है। क्या आपने 'पेड़' का उपयोग करके अपनी निर्देशिकाओं को देखा है? –

उत्तर

4

आपके द्वारा जीथब पर पोस्ट की गई बग रिपोर्ट में पुन: उत्पन्न करने के लिए उत्कृष्ट निर्देश थे। (मैंने टिकट पर टिप्पणी की और यहां प्रतिक्रिया की प्रतिलिपि बनाई।)

मैंने आपके द्वारा सूचीबद्ध संकुल के उन सटीक संस्करणों का उपयोग करके पत्र में उन निर्देशों का पालन किया और अभी भी इस समस्या को पुन: पेश नहीं कर सकते हैं।

यहाँ प्रश्न में आदेश के लिए pip install --verbose से मेरे उत्पादन है:

Unpacking ./dist/anyjson-0.3.1.tar.gz 
    Running setup.py egg_info for package from file:///home/david/projects/anyjson-0.3.1/dist/anyjson-0.3.1.tar.gz 
    running egg_info 
    creating pip-egg-info/anyjson.egg-info 
    writing pip-egg-info/anyjson.egg-info/PKG-INFO 
    writing top-level names to pip-egg-info/anyjson.egg-info/top_level.txt 
    writing dependency_links to pip-egg-info/anyjson.egg-info/dependency_links.txt 
    writing manifest file 'pip-egg-info/anyjson.egg-info/SOURCES.txt' 
    warning: manifest_maker: standard file '-c' not found 

    reading manifest file 'pip-egg-info/anyjson.egg-info/SOURCES.txt' 
    reading manifest template 'MANIFEST.in' 
    writing manifest file 'pip-egg-info/anyjson.egg-info/SOURCES.txt' 
Installing collected packages: anyjson 
    Running setup.py install for anyjson 
    running install 
    running build 
    running build_py 
    creating build 
    creating build/lib.linux-i686-2.7 
    creating build/lib.linux-i686-2.7/anyjson 
    copying anyjson/__init__.py -> build/lib.linux-i686-2.7/anyjson 
    running install_lib 
    creating /tmp/TEST/lib/python2.7/site-packages/anyjson 
    copying build/lib.linux-i686-2.7/anyjson/__init__.py -> /tmp/TEST/lib/python2.7/site-packages/anyjson 
    byte-compiling /tmp/TEST/lib/python2.7/site-packages/anyjson/__init__.py to __init__.pyc 
    running install_egg_info 
    running egg_info 
    writing anyjson.egg-info/PKG-INFO 
    writing top-level names to anyjson.egg-info/top_level.txt 
    writing dependency_links to anyjson.egg-info/dependency_links.txt 
    warning: manifest_maker: standard file '-c' not found 

    reading manifest file 'anyjson.egg-info/SOURCES.txt' 
    reading manifest template 'MANIFEST.in' 
    writing manifest file 'anyjson.egg-info/SOURCES.txt' 
    Copying anyjson.egg-info to /tmp/TEST/lib/python2.7/site-packages/anyjson-0.3.1-py2.7.egg-info 
    running install_scripts 
    writing list of installed files to '/tmp/pip-gvBT02-record/install-record.txt' 
Successfully installed anyjson 
Cleaning up... 

शायद तुम आदेश स्थापित अपने पिप को --verbose जोड़ सकते हैं और तुलना के लिए उत्पादन पोस्ट कर सकता है?

+1

को पुन: उत्पन्न करने के लिए विशिष्ट चरण हैं, मुझे एक ही समस्या थी। मैंने अपनी .bashrc फ़ाइल में PYTHONDONTWRITEBYTECODE पर टिप्पणी की, लॉग आउट किया, लॉग इन किया, अपना वर्चुअल वातावरण शुरू किया और पाइप इंस्टॉल ठीक काम किया। – highpost