जवाबों:
यह उन विकल्पों के आधार पर भिन्न होता है जिन्हें आप पैकेज में सिस्टम / पर डिस्टुटिल्स कॉन्फ़िगरेशन फ़ाइलोंinstall की सामग्री और पास करते हैं । मुझे विश्वास नहीं है कि इन तरीकों में निर्दिष्ट निर्देशिकाओं के बाहर किसी भी फाइल को संशोधित किया गया है।
विशेष रूप से, डिस्टुटिल के पास इस समय अनइंस्टॉल कमांड नहीं है ।
यह भी उल्लेखनीय है कि एक पैकेज / अंडे को हटाने से निर्भरता के मुद्दे पैदा हो सकते हैं - easy_installऐसी समस्याओं को कम करने के प्रयास जैसी उपयोगिताओं ।
जिन तीन चीजों को स्थापित किया जाना है, जिन्हें आपको हटाना होगा:
अब मेरे लिनक्स सिस्टम पर ये रहते हैं:
लेकिन एक विंडोज़ सिस्टम पर वे पूरी तरह से पायथन वितरण निर्देशिका के भीतर होने की संभावना है। मुझे OSX के बारे में कोई जानकारी नहीं है सिवाय इसके कि लिनक्स पैटर्न का पालन करना अधिक पसंद है।
दूसरी बार स्टाम्प आधारित हैक:
touch /tmp/tspython setup.py install --prefix=<PREFIX>find <PREFIX> -cnewer /tmp/ts | xargs rm -r| xargs rm -r। मैं प्रत्येक फ़ाइल को मैन्युअल रूप से जाने की सलाह देता हूं । Ext4 (और अन्य फ़ाइल सिस्टम) पर, यह findसभी फ़ोल्डरों को भी सूचीबद्ध करने वाला है। यदि आपका उपसर्ग था /usr, तो आप हटाने जा/usr/* रहे हैं ।
हां, यह केवल उन चीजों को हटाने के लिए सुरक्षित है जो डिस्टुटिल स्थापित हैं। यह स्थापित फ़ोल्डर या .egg फ़ाइलों के लिए जाता है। स्वाभाविक रूप से कुछ भी जो उस कोड पर निर्भर करता है वह अब काम नहीं करेगा।
यदि आप इसे फिर से काम करना चाहते हैं, तो बस फिर से स्थापित करें।
वैसे, यदि आप डिस्टिलिट का उपयोग कर रहे हैं, तो मल्टी-वर्जन फीचर का उपयोग करने पर भी विचार करें। यह आपको किसी भी एक पैकेज के कई संस्करण स्थापित करने की अनुमति देता है। इसका मतलब है कि यदि आप किसी नए संस्करण को स्थापित करना चाहते हैं, तो आपको पैकेज के पुराने संस्करण को हटाने की आवश्यकता नहीं है।
यदि यह परीक्षण और / या विकास के उद्देश्यों के लिए है, तो सेटप्टूल का विकास होता है आदेश हर बार जब आप एक परिवर्तन करना (ताकि आप स्थापना रद्द करने के लिए नहीं है और हर बार जब आप एक परिवर्तन करना पुनः स्थापित) अपडेट हो जाता है। और आप इस कमांड का उपयोग करके पैकेज को अनइंस्टॉल भी कर सकते हैं।
यदि आप इसका उपयोग करते हैं, तो कुछ भी जिसे आप स्क्रिप्ट के रूप में घोषित करते हैं, एक सुस्त फाइल के रूप में पीछे रह जाएगा।
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, उबंटू 14.04 में परीक्षण किया गया।
विंडोज में पायथन के लिए:
python -m pip uninstall "package_keyword"
uninstall **** (y/n)?
मैंने अभी-अभी अजगर पैकेज की स्थापना रद्द की है, और भले ही मैं निश्चित नहीं हूं कि मैंने ऐसा पूरी तरह से किया है, मैं उचित रूप से आश्वस्त हूं।
मैंने सभी की सूची प्राप्त करके शुरुआत की अजगर से संबंधित फाइलों , तारीख से आदेश दिया, इस धारणा पर कि मेरे पैकेज की सभी फ़ाइलों में कमोबेश एक ही टाइमस्टैम्प होगा, और कोई अन्य फाइल नहीं होगी।
सौभाग्य से, मैंने पायथन को स्थापित किया है /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 "$@" -printf '%T@ ' -ls | sort -n | cut -d\ -f 2-
(मुझे लगता है कि यह GNU "खोज" हो गया है, वैसे, OS X पर आपको जो स्वाद मिलता है, वह "-printf '% T @'" के बारे में नहीं पता)
मैं हर समय उपयोग करता हूं ।
Mac OSX पर, अपने pathToPython / साइट-पैकेज / काम करेगा के तहत इन 2 निर्देशिकाओं को मैन्युअल रूप से हटा दें :
उदाहरण के लिए, pyasn1 को हटाने के लिए , जो एक डिस्टुटिल स्थापित परियोजना है:
यह जानने के लिए कि आपका साइट-पैकेज कहां है:
python -m site
ERROR: flake8 3.7.9 has requirement pycodestyle<2.6.0,>=2.5.0, but you'll have pycodestyle 2.3.1 which is incompatible.
ERROR: nuscenes-devkit 1.0.8 has requirement motmetrics<=1.1.3, but you'll have motmetrics 1.2.0 which is incompatible.
Installing collected packages: descartes, future, torch, cachetools, torchvision, flake8-import-order, xmltodict, entrypoints, flake8, motmetrics, nuscenes-devkit
Attempting uninstall: torch
Found existing installation: torch 1.0.0
Uninstalling torch-1.0.0:
Successfully uninstalled torch-1.0.0
Attempting uninstall: torchvision
Found existing installation: torchvision 0.2.1
Uninstalling torchvision-0.2.1:
Successfully uninstalled torchvision-0.2.1
Attempting uninstall: entrypoints
Found existing installation: entrypoints 0.2.3
ERROR: Cannot uninstall 'entrypoints'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
फिर मैं टाइप करता हूं:
conda uninstall entrypoints
pip install --upgrade pycodestyle
pip install nuscenes-devkit
किया हुआ!