python - पाइप इंस्टाल के साथ स्थापित पैकेज को कैसे अनइंस्टॉल करें--user




python-3.x pip (5)

--user लिए एक --user विकल्प है जो प्रति उपयोगकर्ता पायथन पैकेज स्थापित कर सकता है:

pip install --user [python-package-name]

मैंने एक सर्वर पर एक पैकेज स्थापित करने के लिए इस विकल्प का उपयोग किया था जिसके लिए मेरे पास रूट एक्सेस नहीं है। वर्तमान उपयोगकर्ता पर इंस्टॉल किए गए पैकेज को अनइंस्टॉल करने के लिए मुझे जो चाहिए वह है। मैंने इस कमांड को निष्पादित करने की कोशिश की:

pip uninstall --user [python-package-name]

लेकिन मुझे मिल गया:

no such option: --user

मैं उस पैकेज को कैसे अनइंस्टॉल कर सकता हूं जिसे मैंने pip install --user साथ pip install --user , पैकेज को मैन्युअल रूप से खोजने और हटाने के अलावा?

मुझे यह लेख मिला है

पाइप प्रति उपयोगकर्ता साइट-संकुल निर्देशिका से अनइंस्टॉल नहीं कर सकता है

जो बताता है कि उपयोगकर्ता निर्देशिका से संकुल की स्थापना रद्द करने का समर्थन नहीं करता है। लेख के अनुसार अगर इसे सही तरीके से लागू किया गया था तो

pip uninstall [package-name]

जो पैकेज स्थापित किया गया था, वह उपयोगकर्ता निर्देशिकाओं में भी खोजा जाएगा। लेकिन एक समस्या अभी भी मेरे लिए बनी हुई है। क्या होगा अगर एक ही पैकेज सिस्टम-वाइड और प्रति-उपयोगकर्ता दोनों स्थापित किया गया था? यदि किसी को विशिष्ट उपयोगकर्ता निर्देशिका को लक्षित करने की आवश्यकता हो तो क्या होगा?


Linux पर Python 3.5 और pip 7.1.2 का उपयोग करके इसका परीक्षण करने के बाद, स्थिति यह प्रतीत होती है:

  • pip install --user somepackage $HOME/.local pip install --user somepackage इंस्टॉल होता है, और इसे अनइंस्टॉल करने से pip uninstall somepackage का उपयोग करके काम करता है।

  • यह सच है कि क्या कुछ somepackage को सिस्टम-वाइड भी उसी समय स्थापित किया गया है या नहीं।

  • यदि पैकेज को दोनों स्थानों पर स्थापित किया जाता है, तो केवल स्थानीय को अनइंस्टॉल किया जाएगा। pip का उपयोग करके पैकेज सिस्टम-वाइड की स्थापना रद्द करने के लिए, पहले इसे स्थानीय रूप से अनइंस्टॉल करें, फिर root विशेषाधिकारों के साथ फिर से वही अनइंस्टॉल कमांड चलाएं।

  • पूर्वनिर्धारित उपयोगकर्ता इंस्टॉल निर्देशिका के अलावा, pip install --target somedir somepackage पैकेज को somedir में स्थापित करेगा। pip का उपयोग करके ऐसी जगह से पैकेज की स्थापना रद्द करने का कोई तरीका नहीं है। (लेकिन जीथब पर कुछ पुराना अनमैरिड पुल अनुरोध है जो pip uninstall --target लागू करता है pip uninstall --target ।)

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


MacOS पर पैकेज 'oauth2client' की स्थापना रद्द करने के लिए उदाहरण:

pip uninstall oauth2client

जैसा कि @ थोमस-लोटेज़ ने उल्लेख किया है, वर्तमान में पाइप टूलींग ऐसा नहीं करता है, क्योंकि इसके अनुरूप कोई विकल्प नहीं है। लेकिन जो मुझे लगता है कि मैं ~ / .लोकल / बिन में जांच कर सकता हूं और विशिष्ट पाइप # की तलाश कर सकता हूं। # जो मुझे ऐसा दिखता है जैसे यह - ऑसर विकल्प से मेल खाता है।

मेरे मामले में:

[email protected]: ~/.l/bin$ pwd
/home/antho/.local/bin
[email protected]: ~/.l/bin$ ls pip*
pip  pip2  pip2.7  pip3  pip3.5

और फिर बस विशिष्ट पाइप संस्करण के साथ स्थापना रद्द करें।


मुझे लगता है कि --user ध्वज के साथ संस्थापित संकुल की स्थापना रद्द करना संभव है। यह एक मेरे लिए काम किया;

pip freeze --user | xargs pip uninstall -y

अजगर 3 के लिए;

pip3 freeze --user | xargs pip3 uninstall -y

लेकिन किसी भी तरह ये कमांड सेटप्टूल स्थापित नहीं करते हैं और। उन आदेशों के बाद (यदि आप वास्तव में स्वच्छ अजगर चाहते हैं) तो आप उन्हें हटा सकते हैं;

pip uninstall setuptools && pip uninstall pip


हालांकि, उन लोगों के लिए सावधान रहें जो एक आभासी वातावरण के अंदर pip install --user some_pkg का उपयोग करते हैं

$ path/to/python -m venv ~/my_py_venv
$ source ~/my_py_venv/bin/activate
(my_py_venv) $ pip install --user some_pkg
(my_py_venv) $ pip uninstall some_pkg
WARNING: Skipping some_pkg as it is not installed.
(my_py_venv) $ pip list
# Even `pip list` will not properly list the `some_pkg` in this case

इस स्थिति में, आपको वर्तमान आभासी वातावरण को निष्क्रिय करना होगा , फिर उपयोगकर्ता साइट पैकेजों की सूची या स्थापना रद्द करने के लिए संबंधित python / pip निष्पादन योग्य का उपयोग करें:

(my_py_venv) $ deactivate
$ path/to/python -m pip list
$ path/to/python -m pip uninstall some_pkg

ध्यान दें कि यह समस्या कुछ साल पहले बताई गई थी । और ऐसा लगता है कि वर्तमान निष्कर्ष है: --user एक आभासी env के pip अंदर मान्य नहीं है, क्योंकि एक उपयोगकर्ता स्थान वास्तव में एक आभासी वातावरण के लिए कोई मतलब नहीं है।






virtualenv