पाइप अनइंस्टॉल के लिए बायपास पुष्टिकरण संकेत


86

मैं अपने सुपरयूज़र वातावरण में सभी django संकुल को अनइंस्टॉल करने की कोशिश कर रहा हूं ताकि यह सुनिश्चित हो सके कि मेरे सभी webapp निर्भरता मेरे virtualenv पर स्थापित हैं।

sudo su
sudo pip freeze | grep -E '^django-' | xargs pip -q uninstall

लेकिन पाइप हर पैकेज की स्थापना की पुष्टि करना चाहता है, और -yपाइप के लिए कोई विकल्प नहीं लगता है । क्या अजगर मॉड्यूल के एक बैच की स्थापना रद्द करने का एक बेहतर तरीका है? जाने के लिए rm -rf .../site-packages/एक उचित तरीका है? क्या कोई easy_install विकल्प है?

वैकल्पिक रूप से, क्या उन निर्भरता को पूरा करने के लिए सिस्टम पाइथन मॉड्यूल पर निर्भर होने के बजाय वर्चुअनव के लिए सभी निर्भरताएं स्थापित करने के लिए पाइप को मजबूर करना बेहतर होगा pip --upgrade install, लेकिन किसी भी सिस्टम मॉड्यूल को ओवरराइड करने के लिए समान रूप से पुराने संस्करणों को स्थापित करने के लिए मजबूर करना। मैंने अपने virtualenv को सक्रिय करने की कोशिश की और फिर pip install --upgrade -r requirements.txtयह निर्भरता स्थापित करने के लिए प्रतीत होता है, यहां तक ​​कि जो मेरे सिस्टम पथ में मौजूद हैं, लेकिन मुझे यकीन नहीं हो सकता है कि क्योंकि मेरा सिस्टम मॉड्यूल पुराना था। और man pipइस व्यवहार की गारंटी नहीं देता है (यानी पैकेज का वही संस्करण स्थापित करना जो सिस्टम साइट-पैकेज में पहले से मौजूद है)।

जवाबों:


197

पाइपलाइन संस्करण 7.1.2 से शुरू करके आप चला सकते हैं pip uninstall -y <python package(s)>

pip uninstall -y package1 package2 package3

या फ़ाइल से

pip uninstall -y -r requirements.txt

65

पिप में --yes विकल्प नहीं है (पाइप संस्करण 1.3.1 के रूप में)।

काम: यह करने के लिए हाँ पाइप!

$ sudo ls  # enter pw so not prompted again
$ /usr/bin/yes | sudo pip uninstall pymongo

2
आह, कितना सरल है। यूनिक्स कार्यक्रम अनुस्मारक के लिए धन्यवाद। yesइतना उपयोगी है।
hobs

लेकिन मुझे नहीं लगता कि यह काम करेगा (बहुत डरपोक इसे आज मेरे सिस्टम पर आजमाने के लिए)। yes | sudo pip freeze | grep -E '^django-' | xargs pip -q uninstallक्योंकि तर्कों / आदेशों yesसे pip freezeनहीं, बल्कि बच निकलेगा । xargspip uninstall
hobs

3
pip freeze > all_to_uninstall.txt yes | pip uninstall -r all_to_uninstall.txt
निक

8

अगर आप हर पैकेज को अनइंस्टॉल करना चाहते हैं requirements.txt,

pip uninstall -y -r requirements.txt

1

वैकल्पिक रूप से, क्या यह निर्भरता को पूरा करने के लिए सिस्टम अजगर मॉड्यूल पर भरोसा करने के बजाय वर्चुअनव के लिए सभी निर्भरताएं स्थापित करने के लिए पाइप को मजबूर करने के लिए बेहतर होगा,

हाँ। इनबिल्ट सिस्टम इंस्टॉल किए गए पैकेज के साथ बहुत ज्यादा गड़बड़ न करें। सिस्टम पैकेज के कई, विशेष रूप से ओएस एक्स (यहां तक ​​कि डेबियन और व्युत्पन्न किस्में) उन पर बहुत अधिक निर्भर करते हैं।

पाइप - अपग्रेड स्थापित करें, लेकिन किसी भी सिस्टम मॉड्यूल को ओवरराइड करने के लिए समान रूप से पुराने संस्करणों को स्थापित करने के लिए मजबूर करना।

यह एक बड़ी बात नहीं होनी चाहिए अगर वेव के भीतर कुछ और पैकेज स्थापित हैं जो पहले से ही सिस्टम पैकेज में हैं, खासकर अगर वे अलग-अलग संस्करण के हैं। Virtualenv के पूरे बिंदु Thats।

मैंने अपने virtualenv को सक्रिय करने की कोशिश की और फिर पाइप -अपग्रेड -r आवश्यकताएँ.txt को स्थापित किया और यह निर्भरता स्थापित करने के लिए लगता है, यहां तक ​​कि जो मेरे सिस्टम पथ में मौजूद हैं, लेकिन मुझे यकीन नहीं हो सकता है क्योंकि मेरे सिस्टम मॉड्यूल पुराने थे। और मैन पाइप इस व्यवहार की गारंटी नहीं देता है (यानी पैकेज का वही संस्करण स्थापित करना जो सिस्टम साइट-पैकेज में पहले से मौजूद है)।

नहीं, यह मुख्य स्थापना में पहले से ही वहाँ संकुल को स्थापित नहीं करता है जब तक कि आपने --no-site-packagesइसे बनाने के लिए ध्वज का उपयोग नहीं किया है, या आवश्यक और वर्तमान संस्करण भिन्न नहीं हैं ..


1

लक्ष्मण प्रसाद सही थे, pip --upgradeऔर / या virtualenv --no-site-packagesजाने का रास्ता है। सिस्टम-वाइड अजगर मॉड्यूल को अनइंस्टॉल करना खराब है।

--upgradeपाइप में करने का विकल्प वर्चुअल एनवी में आवश्यक मॉड्यूल स्थापित करता है, भले ही वे सिस्टम वातावरण में पहले से मौजूद हों, और भले ही आवश्यक संस्करण या नवीनतम उपलब्ध संस्करण सिस्टम संस्करण के समान हो।

pip --upgrade install

और, वर्चुअल वातावरण बनाते समय -नो-साइट-पैकेज विकल्प का उपयोग करना सुनिश्चित करता है कि सिस्टम पथ में लापता मॉड्यूल की उपस्थिति से लापता निर्भरता को संभवतः मास्क नहीं किया जा सकता है। यह एक पैकेज से दूसरे में एक मॉड्यूल के प्रवास के दौरान समस्याओं को उजागर करने में मदद करता है, जैसे pinax.apps.groups -> django- समूह, खासकर जब समस्या django में लोड templatetags बयानों के साथ होती है जो tematatetags निर्देशिकाओं और टैग परिभाषाओं के लिए सभी उपलब्ध मॉड्यूल खोजते हैं भीतर।


0
pip install -U xxxx 

बायपास की पुष्टि कर सकते हैं


2
कृपया पूर्ण सार्थक वाक्य लिखने और कोड भागों को संपादित करने का प्रयास करें।
YesThatIsMyName
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.