2008-12-31 12 views
74

क्या आप आसानी से अपनी पायथन स्थापना से निर्देशिका हटा सकते हैं, या क्या कोई ऐसी फाइलें हैं जिन्हें आपको हटाना होगा?आप एक पायथन पैकेज को अनइंस्टॉल कैसे करते हैं जो distutils का उपयोग करके स्थापित किया गया था?

उत्तर

35

यह आपके द्वारा install पर दिए गए विकल्पों और पैकेज में distutils configuration files की सामग्री के आधार पर भिन्न होता है। मुझे विश्वास नहीं है कि इन तरीकों से निर्दिष्ट निर्देशिकाओं के बाहर किसी भी फाइल को संशोधित किया गया है।

विशेष रूप से, distutils does not have an uninstall command इस समय।

यह भी ध्यान देने योग्य है कि पैकेज/अंडे को हटाने से निर्भरता के मुद्दे हो सकते हैं - easy_install जैसी सुविधाएं ऐसी समस्याओं को कम करने का प्रयास करती हैं।

+3

आप इस अपडेट कर लें कर सकते हैं सीधे प्रश्न के सुस्त फ़ाइलों हिस्सा पता करने के लिए? –

+0

मैंने सोचा कि मैंने किया - distutils कॉन्फ़िगरेशन द्वारा निर्दिष्ट निर्देशिकाओं के बाहर कोई भी फाइल नहीं बनाई गई है और झंडे स्थापित करें, इसलिए इन निर्देशिकाओं में कोई भी "lingering" फ़ाइलें मौजूद होंगी। यह पैकेज से पैकेज में भिन्न होता है। – cdleary

+1

@cdleary: धन्यवाद, लेकिन, मैं उम्मीद कर रहा था कि आप बस अपने उत्तर को स्पष्ट और मजबूत करेंगे, एक लंबी टिप्पणी धागा नहीं जोड़ें। –

4

यदि यह परीक्षण और/या विकास उद्देश्यों के लिए है, setuptools में develop कमांड है जो हर बार जब आप कोई परिवर्तन करते हैं तो अपडेट होता है (इसलिए आपको हर बार अनइंस्टॉल करने और पुनर्स्थापित करने की आवश्यकता नहीं होती है)। और आप इस कमांड का उपयोग कर पैकेज को अनइंस्टॉल कर सकते हैं।

यदि आप इसका उपयोग करते हैं, तो आप स्क्रिप्ट के रूप में घोषित कुछ भी एक लिंग फ़ाइल के रूप में पीछे छोड़ दिया जाएगा।

15

तीन चीजें हैं जो स्थापित हो जिसे आप हटाना की आवश्यकता होगी हैं:

  1. संकुल/मॉड्यूल
  2. स्क्रिप्ट
  3. डाटा मेरी Linux सिस्टम पर फ़ाइलें

अब इन में रहते हैं :

  1. /usr/lib/python2.5/site- संकुल
  2. /usr/bin
  3. /usr/share

लेकिन एक विंडोज़ प्रणाली वे और अधिक अजगर वितरण निर्देशिका के भीतर पूरी तरह होने की संभावना है पर। मुझे ओएसएक्स के बारे में कोई जानकारी नहीं है सिवाय इसके कि लिनक्स पैटर्न का पालन करना अधिक पसंद है।

7

हां, बस कुछ भी हटाना सुरक्षित है जो डिस्ट्यूट स्थापित है। यह स्थापित फ़ोल्डर या .egg फ़ाइलों के लिए चला जाता है। स्वाभाविक रूप से उस कोड पर निर्भर कुछ भी काम नहीं करेगा।

यदि आप इसे फिर से काम करना चाहते हैं, तो बस पुनः इंस्टॉल करें।

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

2

मैंने अभी एक पायथन पैकेज अनइंस्टॉल किया है, और भले ही मैं कुछ नहीं हूं, मैंने पूरी तरह से किया, मैं काफी आत्मविश्वास से हूं।

मैं सभी अजगर से संबंधित फाइलों की एक सूची, तिथि के अनुसार क्रमबद्ध रही, इस धारणा है कि मेरी पैकेज में फ़ाइलों के सभी लगभग समान ही टाइमस्टैम्प होगा पर द्वारा शुरू किया है, और कोई अन्य फ़ाइलों होगा।

सौभाग्य से, मुझे पाइथन /opt/Python-2.6.1 के तहत स्थापित किया गया है; अगर मैं अपने लिनक्स डिस्ट्रो के साथ पाइथन का उपयोग कर रहा था, तो मुझे /usr को खराब करना होगा, जो लंबे समय तक ले सकता था।

फिर मैंने उस सूची की जांच की, और राहत के साथ नोट किया कि सभी चीजें जिन्हें मैं नूक करना चाहता था, एक निर्देशिका, /opt/Python-2.6.1/lib/python2.6/site-packages/module-name/, और एक फ़ाइल, /opt/Python-2.6.1/lib/python2.6/site-packages/module-x.x.x_blah-py2.6.egg-info शामिल थी।

तो मैंने अभी उन्हें हटा दिया है।

यहाँ कैसे मैं फ़ाइलों की तिथि-अनुसार क्रमबद्ध सूची मिल गया है:

find "[email protected]" -printf '%[email protected] ' -ls | sort -n | cut -d\ -f 2-

(मुझे लगता है कि जीएनयू "लगता है", वैसे हो गया है; स्वाद आप ओएस एक्स पर मिल नहीं करता ' टी के बारे में पता नहीं है "-प्रिंटफ '% टी @' ')

मैं उस सभी समय का उपयोग करता हूं।

2

विंडोज 7 के लिए,

नियंत्रण कक्ष -> कार्यक्रम -> स्थापना रद्द करें

, तो

दूर करने के लिए अजगर पैकेज चुनें।

+7

यह सुझाव मेरे लिए सहायक था। धन्यवाद। – Mauricio

+0

@Mauricio मुझे सूची में पुराने संस्करण नहीं दिख रहे हैं लेकिन मैं साइट-पैकेज में अंडे की फाइलें देख सकता हूं। क्या ये एक दिक्कत है? – Olexandr

12

एक और समय स्टाम्प आधारित हैक:

  1. एक लंगर बनाएँ: touch /tmp/ts
  2. पैकेज पुनर्स्थापित हटाए जाएंगे: find <PREFIX> -cnewer /tmp/ts | xargs rm -r
: python setup.py install --prefix=<PREFIX>
  • फ़ाइलें क्या लंगर फ़ाइल से नवीनतम निकाल दें
  • 4

    उबंटू 12.04 में, मैंने पाया है कि डिफ़ॉल्ट रूप से देखने के लिए आपको केवल एक ही स्थान

    है
    /usr/local/lib/python2.7/ 
    

    और यदि कोई है तो संबंधित फ़ोल्डर और फ़ाइल को हटा दें!

    1

    install --record + xargs rm

    sudo python setup.py install --record files.txt 
    xargs sudo rm -rf < files.txt 
    

    सभी फ़ाइलों और निकाल देता है लेकिन पीछे खाली निर्देशिका छोड़ देता है।

    यह आदर्श नहीं है, यह पैकेज संघर्ष से बचने के लिए पर्याप्त होना चाहिए।

    और यदि आप files.txt पढ़कर चाहते हैं, तो आप मैन्युअल रूप से नौकरी खत्म कर सकते हैं, या ब्रेक और स्वचालित निर्देशिका हटाने को स्वचालित भी कर सकते हैं।

    एक सुरक्षित सहायक होगा:

    python-setup-uninstall() (
        sudo rm -f files.txt 
        sudo python setup.py install --record files.txt && \ 
        xargs rm -rf < files.txt 
        sudo rm -f files.txt 
    ) 
    

    पायथन 2.7.6, Ubuntu 14.04 में परीक्षण किया गया।

    1
    Windows में अजगर के लिए

    :

    python -m pip uninstall "package_keyword" 
    uninstall **** (y/n)? 
    
    +0

    तस्वीर देने के लिए सिरो को धन्यवाद कैसे स्थापित करें। – user8074545

    +0

    मतलब तस्वीर को अनइंस्टॉल भी करें। – user8074545

    संबंधित मुद्दे

     संबंधित मुद्दे