मैं पायथन के easy_install के साथ इंस्टॉल किए गए पैकेज कैसे निकालूं?


704

पायथन के easy_installनए पैकेज स्थापित करना बेहद सुविधाजनक है। हालाँकि, जहाँ तक मैं बता सकता हूँ, यह एक निर्भरता प्रबंधक की अन्य सामान्य विशेषताओं को लागू नहीं करता है - स्थापित संकुल को सूचीबद्ध करना और हटाना।

यह पता लगाने का सबसे अच्छा तरीका क्या है कि इंस्टॉल क्या है, और इंस्टॉल किए गए पैकेज को हटाने का पसंदीदा तरीका क्या है? क्या कोई ऐसी फ़ाइल है जिसे अद्यतन करने की आवश्यकता है यदि मैं मैन्युअल रूप से संकुल हटाता हूं (उदाहरण के लिए rm /usr/local/lib/python2.6/dist-packages/my_installed_pkg.eggया इसी तरह)?


67
जिस समय मैं यह टिप्पणी लिख रहा हूं, यह पोस्ट लगभग 2 साल पुरानी है। पाइप अब easy_install के लिए प्रभावी रूप से एक प्रतिस्थापन है और बाद में स्थापित किए गए पैकेज (अंडे शामिल) को ठीक से और सफाई से हटा सकता है। कृपया सुनिश्चित करें कि उत्तर को आगे बढ़ाने के लिए इसे थ्रेड के नीचे रखने का सुझाव दें।
माइकल एकोका

53
वह ऑक्सीमोरोन जिसे "easy_install" कहा जाता है - a: के पास कोई प्रतिपक्ष नहीं है easy_uninstall, न ही b: यह उल्लेख करने की जहमत उठाता है कि कोई ऐसा कैसे कर सकता है --help- जिससे मेरा दिमाग चकरा जाए / मेरी आत्मा को दुख पहुंचाता है / मेरा दिल दुखाता है
एलेक्स ग्रे

13
@ अगर मैं पाइप की स्थापना रद्द करने की कोशिश कर रहा हूं तो क्या होगा? (:
mccc

जवाबों:


621

पाइप , सेटपूल / easy_install का विकल्प, एक "अनइंस्टॉल" कमांड प्रदान करता है।

स्थापना निर्देशों के अनुसार पाइप स्थापित करें :

$ wget https://bootstrap.pypa.io/get-pip.py
$ python get-pip.py

तब आप के pip uninstallसाथ स्थापित संकुल को हटाने के लिए उपयोग कर सकते हैंeasy_install


25
यदि आप पाइप के साथ मॉड्यूल की स्थापना रद्द करने के मुद्दे पर हैं, तो सुनिश्चित करें कि आपका पाइप स्थापना स्वयं अद्यतित है: पाइप स्थापित -U पाइप # कि एक अपरकेस है
माइकल एको

4
पाइप ने मेरे लिए एक easy_install स्थापित पैकेज की स्थापना रद्द करने का काम किया। हालाँकि, पैकेज के सभी संस्करणों को निकालने के लिए मुझे कई बार 'पाइप अनइंस्टॉल <पैकेज>' चलाना पड़ा। इसलिए इस बात का ध्यान रखें। इसने एक 'विकसित' स्थापित पैकेज को भी हटा दिया, जो एक परिणाम के रूप में गड़बड़ था।
ड्रैगनफैक्स

2
लेकिन आप गैर-सक्रिय पैकेज को कैसे
हटाएंगे

7
मैंने easy_install इंस्टॉल की स्थापना के लिए पाइप को स्थापित करने के लिए easy_install का उपयोग किया।

2
उत्तर कहता है "इंस्टॉल करें पाइप", लेकिन वास्तव में पाइप आधुनिक पायथन के साथ बनाया गया लगता है
एडवर्ड २

188

अंडे को अनइंस्टॉल .eggकरने के rm -rfलिए (यह एक डायरेक्टरी हो सकती है) और मैचिंग लाइन को हटा देंsite-packages/easy-install.pth


18
नए pipपैकेज प्रबंधक में एक अनइंस्टॉल सुविधा शामिल है।
जोफोरकर

मुझे लगता है कि पाइप बेहतर है, फिर स्थापना रद्द करें, क्योंकि पाइप स्रोतों से स्थापित होते हैं। यदि आप मेरे लिए एक नया विन 7 64 बिट पसंद करते हैं, तो यह आपके दिनों को बचाएगा :)
Daitangio

6
कुछ उपयोग पाइप के पुराने संस्करण के साथ अटके हुए हैं, जिसमें स्थापना रद्द करने का विकल्प नहीं है, इसलिए यह जवाब अभी भी लायक है।
मार्क पीचलेस

5
संभवतः यह उल्लेख के लायक है कि यह विधि सिस्टम पर आवारा data_filesऔर scripts(और संभवतः अन्य फ़ाइल श्रेणियां) छोड़ सकती है। अंडे EGG-INFO/SOURCES.txtमें सभी packageफाइलों की सूची होती है और sources, लेकिन नहीं data_files, जिसे आपके सिस्टम पर किसी भी मनमानी निर्देशिका में स्थापित किया जा सकता है ...
एलेक्स लीच

पाइप हमेशा वह सब नहीं हटाता है जो easy_install इंस्टॉल करता है। यहाँ एक छोटा सा अनुभव है कि बस मेरे साथ हुआ है, जहाँ मेरे एक मॉड्यूल की स्थापना रद्द करने में असमर्थ था। मुझे पूरी तरह से अनइंस्टॉल करने के लिए साइट-पैकेज / आसान-इंस्टाल से मिलान लाइन को हटाना पड़ा।
ychaouche

158

सबसे पहले आपको यह कमांड चलाना होगा:

$ easy_install -m [PACKAGE]

यह पैकेज की सभी निर्भरता को दूर करता है।

फिर उस पैकेज की अंडा फाइल निकालें:

$ sudo rm -rf /usr/local/lib/python2.X/site-packages/[PACKAGE].egg

1
यहाँ अधिक डॉक्टर: चोटी .telecommunity.com
DevCenter

-mजहाँ तक मैं बता सकता हूँ कुछ भी निकालने के लिए उचित easy_install कमांड नहीं है, लेकिन यह उत्तर easy_install संकुल का महत्वपूर्ण स्थान देता है जो अन्य उत्तर नहीं देता है। एक rm -rf /usr/local/lib/python*पिप इंस्टॉल किए जाने पर मुझे लगता है यह जाने का रास्ता है
fuzzyTew

55

सभी जानकारी अन्य उत्तरों में है, लेकिन कोई भी आपके दोनों अनुरोधों को सारांशित नहीं करता है या चीजों को अनावश्यक रूप से जटिल बनाने के लिए प्रतीत होता है:

  • अपने हटाने की जरूरत के लिए उपयोग करें:

    pip uninstall <package>

    (का उपयोग कर स्थापित करें easy_install pip)

  • आपके 'सूची स्थापित पैकेजों' के लिए या तो उपयोग की जरूरत है:

    pip freeze

    या:

    yolk -l

    जो अधिक पैकेज विवरण को आउटपुट कर सकता है।

    (के माध्यम से स्थापित करें easy_install yolkया pip install yolk)


दौड़ने के बाद yolk -l, मैंने देखा कि मेरे पास "scipy -0.11.0 -non-active development" और "scipy -0.14.0 ... -ऐक्टिव डेवलपमेंट" जैसे डुप्लिकेट पैकेज हैं। मैं इन गैर-सक्रिय विकास पैकेजों को कैसे अनइंस्टॉल कर सकता हूं?
bobbyjoe93 5

2
यह अच्छा है, सिवाय इसके कि मैं पाइप को अनइंस्टॉल करना चाहता हूं जो कि easy_install द्वारा स्थापित किया गया था। इसका कारण यह है कि इसे गलत पायथन संस्करण के लिए स्थापित करना समाप्त हो गया।
नागदेव

28

नेट पर कई स्रोत हैं जो एम विकल्प के साथ पैकेज को फिर से इंस्टॉल करके हैक का सुझाव देते हैं और फिर बस .egg फ़ाइल को lib / और binaries में bin / को हटाते हैं। इसके अलावा, इस सेटपूल के मुद्दे के बारे में चर्चा अजगर बग ट्रैकर पर पाई जा सकती है क्योंकि सेटप्टूलस अंक 21 है

संपादित करें: अजगर बगट्रैकर का लिंक जोड़ा गया।


2
इस जानकारी के लिए धन्यवाद। अन्य संदर्भ के लिए, यहां उस मुद्दे का लिंक दिया गया है जिसका आपने उल्लेख किया है: bugs.python.org/setuptools/issue21
ire_and_curses

25

यदि समस्या आपके लिए एक गंभीर-पर्याप्त झुंझलाहट है, तो आप virtualenv पर विचार कर सकते हैं । यह आपको एक वातावरण बनाने की अनुमति देता है जो अजगर पुस्तकालयों को घेरता है। आप वैश्विक साइट-पैकेज निर्देशिका के बजाय वहां पैकेज स्थापित करते हैं। उस वातावरण में आपके द्वारा चलाई गई कोई भी स्क्रिप्ट उन पैकेजों तक पहुँचती है (और वैकल्पिक रूप से, आपके वैश्विक रूप में भी)। मैं संकुल का मूल्यांकन करते समय इसका बहुत उपयोग करता हूं कि मुझे यकीन नहीं है कि मैं विश्व स्तर पर स्थापित करना चाहता / चाहती हूं। यदि आप तय करते हैं कि आपको पैकेज की आवश्यकता नहीं है, तो उस आभासी वातावरण को दूर भगाना काफी आसान है। यह उपयोग करने के लिए बहुत आसान है। एक नया env बनाएँ:

$>virtualenv /path/to/your/new/ENV

virtual_envt नए वातावरण में आपके लिए सेटटॉपटूल स्थापित करता है, ताकि आप कर सकें:

$>ENV/bin/easy_install

आप अपनी खुद की बूस्टर स्क्रिप्ट भी बना सकते हैं जो आपके नए वातावरण को सेटअप करती है। तो, एक कमांड के साथ, आप एक नया वर्चुअल एनवी बना सकते हैं, जैसे कि, अजगर 2.6, psycopg2 और django डिफ़ॉल्ट रूप से इंस्टॉल किए गए हैं (यदि आप चाहें तो अजगर का एनव-विशिष्ट संस्करण स्थापित कर सकते हैं)।


$> क्या है? यह एक संकेत है? शायद $ को सही करना अधिक सहायक होगा? धन्यवाद
ग्रे

19

आधिकारिक (?) निर्देश: http://peak.telecommunity.com/DevCenter/EasyInstall#uninstalling-stages

यदि आपने किसी पैकेज को दूसरे संस्करण से बदल दिया है, तो आप पैकेज (ओं) को केवल पैकेजनाम (versionNfo -egg) फ़ाइल या निर्देशिका (संस्थापन निर्देशिका में पाया) को हटाकर आपको हटा नहीं सकते।

यदि आप किसी पैकेज के वर्तमान में स्थापित संस्करण (या पैकेज के सभी संस्करण) को हटाना चाहते हैं, तो आपको पहले चलना चाहिए:

easy_install -mxN PackageName

यह सुनिश्चित करेगा कि आप जिस पैकेज को हटाने की योजना बना रहे हैं, पायथन उसकी खोज जारी नहीं रखता है। आपके द्वारा ऐसा करने के बाद, आप सुरक्षित रूप से .egg फ़ाइलों या निर्देशिकाओं को हटा सकते हैं, साथ ही कोई भी स्क्रिप्ट जिसे आप निकालना चाहते हैं।


कुछ चीजें कभी नहीं बदलती हैं ऐसा लगता है! PIP ने TRAC हैक प्लगइन (trac admin) स्थापित करने से इनकार कर दिया, केवल easy_install काम करता है। लेकिन मैंने गलती से एक पुराना संस्करण स्थापित कर दिया। और easy_install उस प्रोजेक्ट के लिए https url से ठीक नहीं कर पाया। इसलिए मैंने इसे हटाने के लिए PIP का उपयोग किया, लेकिन TRAC को पुन: स्थापित करने के बाद प्लगइन नहीं देखा। इसलिए मैं यहाँ जानकारी का उपयोग pkg को अलग करने और मैन्युअल रूप से इसे हटाने के लिए करता हूँ, फिर पुनः स्थापित करता हूँ। वाह। (अजगर 2.7)
रिचर्ड कुक


7

स्थापित पायथन पैकेजों को सूचीबद्ध करने के लिए, आप उपयोग कर सकते हैं yolk -l। आपको easy_install yolkपहले उपयोग करने की आवश्यकता होगी ।


6

समय के साथ स्थापित कई यादृच्छिक पायथन पैकेजों की स्थापना रद्द करने की कोशिश करते हुए, इस सवाल पर आया था।

इस सूत्र से जानकारी का उपयोग करना, यह वही है जो मैं लेकर आया हूं:

cat package_list | xargs -n1 sudo pip uninstall -y

एक package_listसे साफ (जाग) हैpip freeze एक virtualenv में।

लगभग सभी पायथन पैकेजों को हटाने के लिए :

yolk -l | cut -f 1 -d " " | grep -v "setuptools|pip|ETC.." | xargs -n1 pip uninstall -y

<package_list xargs -n1 sudo pip uninstall -yएक UUOC से बचा जाता है!
हेनी हॉगनसन

3

मैं अपने MacOS X तेंदुए 10.6.blah पर एक ही समस्या में भाग गया।

समाधान यह सुनिश्चित करना है कि आप MacPorts अजगर को बुला रहे हैं:

sudo port install python26
sudo port install python_select
sudo python_select python26
sudo port install py26-mysql

उम्मीद है की यह मदद करेगा।


1
हालाँकि, मैंने मैकपोर्ट से पूरी तरह से या तो ब्रू, देशी अजगर 2.7 मैक से स्विच किया है। MySQLdb को setup_tools
Cmag

3

मेरे लिए केवल इस फाइल को डिलीट करना: आसान-इंस्टॉल.पैंथ काम किया, बाकी पाइप इंस्टाल django == 1.3.7


1

इसने मेरे लिए काम किया। यह पिछले उत्तरों के समान है लेकिन पैकेजों का मार्ग अलग है।

  1. sudo easy_install -m
  2. sudo rm -rf /Library/Python/2.7/site-packages/.egg

फलक: मैकओएस हाई सिएरा संस्करण 10.13.3


1
पहला कमांड मेरे लिए यह त्रुटि पैदा करता है:error: No urls, filenames, or requirements specified (see --help)
माइकल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.