मैं अपनी परियोजनाओं के लिए निर्भरताओं की सूची बनाए रखने के लिए pip requirements file का उपयोग करता हूं।पाइप फ्रीज द्वारा बनाई गई आवश्यकताओं में पाइप इंस्टॉल विकल्पों को कैसे बनाए रखें?
मैं अब अपने आप को एक पुस्तकालय pip install --install-option='some-setup.py.option'
लेकिनpip freeze
का उपयोग कर जो मैं अपने प्रोजेक्ट के requirements.txt
में बचाने इसके उत्पादन में इन विकल्पों रिकॉर्ड नहीं करता है स्थापित करने के लिए होने लगता है। इससे समस्याएं पैदा होती हैं क्योंकि एक नई मशीन पर एक सरल pip install -r requirements.txt
इस लाइब्रेरी के लिए आवश्यक तर्कों की आपूर्ति किए बिना सभी निर्भरताओं को स्थापित करता है, और मैंने सरल राउंड-ट्रिप ऑपरेशन खो दिया है।
तो, मेरी 2 हिस्सा सवाल यह है:
- वहाँ पिप बनाए रखने पिप फ्रीज उत्पादन किसी भी तरह में विकल्प स्थापित करने के लिए कोई तरीका है?
- यदि नहीं, तो इंस्टॉल विकल्प जोड़ने के लिए मैन्युअल रूप से आवश्यकता फ़ाइल को हैक करने का कोई तरीका है? यदि मुझे आवश्यकता है, और आवश्यकता फ़ाइल के मैन्युअल रखरखाव पर स्विच करना है, तो
pip freeze
की राउंड ट्रिप प्रकृति खोने के साथ मैं ठीक हूं। मैंने documentation की जांच की है लेकिन सहायता के लिए कुछ भी नहीं देख सका।
अनावश्यक लेकिन संभवतः दिलचस्प विवरण का पालन करें
मैं स्थापित करने के लिए pymongo लेकिन without building the C extension तो मैं यह अतुल्यकालिक रूप से एक eventlet आधारित अनुप्रयोग में उपयोग कर सकते हैं चाहता हूँ।
स्थापित के रूप में वांछित और requirements.txt निर्माण: नई virtualenv में
(test)[email protected]:~/test$ pip install pymongo --install-option='--no_ext'
Downloading/unpacking pymongo
Downloading pymongo-2.1.1.tar.gz (199Kb): 199Kb downloaded
Running setup.py egg_info for package pymongo
Installing collected packages: pymongo
Running setup.py install for pymongo
Successfully installed pymongo
Cleaning up...
(test)[email protected]:~/test$ pip freeze > requirements.txt
(test)[email protected]:~/test$ cat requirements.txt
bottle==0.10.7
distribute==0.6.10
eventlet==0.9.16
greenlet==0.3.3
lxml==2.3.3
pymongo==2.1.1
simplejson==2.3.2
wsgiref==0.1.2
, requirements.txt
से एक ही परियोजना स्थापित करने का प्रयास। पिप pymongo :(
(test2)[email protected]:~/test2$ pip install -r requirements.txt
...
Downloading/unpacking pymongo==2.1.1 (from -r requirements.txt (line 6))
Downloading pymongo-2.1.1.tar.gz (199Kb): 199Kb downloaded
Running setup.py egg_info for package pymongo
Installing collected packages: pymongo
Running setup.py install for pymongo
building 'bson._cbson' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Ibson -I/usr/include/python2.6 -c bson/_cbsonmodule.c -o build/temp.linux-i686-2.6/bson/_cbsonmodule.o
...
Successfully installed pymongo
Cleaning up...
अद्यतन Issue 271 अप्रैल 2011 में पिप के खिलाफ खोला गया था प्रति-लाइन --install-option
requirements.txt में निर्दिष्ट करने की क्षमता के लिए पूछने के लिए सी विस्तार बनाता है। यदि आपको एक ही समस्या है तो कृपया इस मुद्दे के लिए वोट दें।
यदि आप मैन्युअल रूप से आवश्यकता फ़ाइल में --install-option = '- no_ext' जोड़ते हैं, तो यह काम करता है? - अगर मुझे संदेह नहीं है कि आपको अनुरोध करना होगा कि पीपी डेवलपर्स इस कार्यक्षमता को जोड़ते हैं (जो एक अच्छा विचार है!) – d3vid
@ d3vid यह काम नहीं करता है मुझे डर है। अप्रैल 2011 में खोला गया इसके लिए पहले से ही एक फीचर अनुरोध है: https://github.com/pypa/pip/issues/271। कृपया वहां अपना +1 भी जोड़ें। – Day