আপনি কীভাবে একটি পাইথন প্যাকেজ আনইনস্টল করবেন যা ডিস্টুটিস ব্যবহার করে ইনস্টল করা হয়েছিল?


92

আপনার অজগর ইনস্টলেশন থেকে আপনি কেবল ডিরেক্টরি মুছতে পারেন, বা এমন কোনও বিলম্বিত ফাইল রয়েছে যা আপনার মুছতে হবে?

উত্তর:


45

এটি আপনি যে বিকল্পগুলি পাস installকরেছেন সেগুলি এবং সিস্টেমে / প্যাকেজে ডিস্টুটি কনফিগারেশন ফাইলগুলির সামগ্রীর উপর ভিত্তি করে পরিবর্তিত হয় । আমি বিশ্বাস করি না যে কোনও ফাইলই এই উপায়ে নির্দিষ্ট করা ডিরেক্টরিগুলির বাইরে পরিবর্তিত হয়।

উল্লেখযোগ্যভাবে, ডিস্টুটিলসের এই সময়ে একটি আনইনস্টল কমান্ড নেই

এটি আরও লক্ষণীয় যে প্যাকেজ / ডিম মুছে ফেলার কারণে নির্ভরতাজনিত সমস্যা হতে পারে - easy_installযেমন সমস্যাগুলি হ্রাস করার চেষ্টা করার মতো উপযোগিতা ।


4
আপনি দয়া করে প্রশ্নের অংশীদারী ফাইলগুলিকে সরাসরি সম্বোধন করতে এটি আপডেট করতে পারেন?
এস .লট

আমি ভেবেছিলাম আমি করেছি - ডিস্টিলি কনফিগারেশন দ্বারা নির্দিষ্ট করা ডিরেক্টরিগুলির বাইরে কোনও ফাইল তৈরি করা হয় না এবং পতাকা ইনস্টল করা হয়, সুতরাং এই ডিরেক্টরিগুলিতে কোনও "লম্বার" ফাইল উপস্থিত থাকবে। এটি প্যাকেজ থেকে প্যাকেজে পরিবর্তিত হয়।
সিডলারি

4
@ সিডলারি: ধন্যবাদ, তবে, আমি আশা করছিলাম যে আপনি নিজের উত্তরটি কেবল স্পষ্ট করতে এবং শক্তিশালী করতে চাইবেন, কোনও দীর্ঘ মন্তব্যের থ্রেড যোগ করবেন না।
এস.লট

4
@ এস.লোট: দুঃখিত, তবে আপনি জানেন না যে উত্তরটির কোন অংশে আপনি স্পষ্টতা চান - আপনি কি আরও সুনির্দিষ্ট হতে পারেন?
সিডলারি

4
চিত্র139773 তারিখ: 2011-07-04 14:35 ডিস্টুটিস 2 / প্যাকেজিং এখন একটি সরানোর ফাংশন এবং পাইসআপ অপসারণ আদেশ দেয় provides
এডওয়ার্ড

19

ইনস্টল হওয়া তিনটি জিনিস যা আপনার মুছতে হবে are

  1. প্যাকেজ / মডিউল
  2. স্ক্রিপ্ট
  3. ডাটা ফাইল

এখন আমার লিনাক্স সিস্টেমে এগুলি লাইভ থাকে:

  1. /usr/lib/python2.5/site-packages
  2. / usr / বিন
  3. / usr / শেয়ার

তবে উইন্ডোজ সিস্টেমে এগুলি পুরোপুরি পাইথন বিতরণ ডিরেক্টরিের মধ্যে থাকতে পারে be লিনাক্স প্যাটার্নটি অনুসরণ করা আরও পছন্দসই তবে ওএসএক্স সম্পর্কে আমার কোনও ধারণা নেই।


14

অন্য সময় স্ট্যাম্প ভিত্তিক হ্যাক:

  1. একটি অ্যাঙ্কর তৈরি করুন: touch /tmp/ts
  2. প্যাকেজটি সরানোর জন্য পুনরায় ইনস্টল করুন: python setup.py install --prefix=<PREFIX>
  3. অ্যাঙ্কর ফাইলের চেয়ে সাম্প্রতিকতম ফাইলগুলি সরান: find <PREFIX> -cnewer /tmp/ts | xargs rm -r

4
-1। আমি পছন্দ করি না | xargs rm -r। আমি প্রতিটি ফাইল ম্যানুয়ালি যেতে পরামর্শ দিই । Ext4 (এবং অন্যান্য ফাইল সিস্টেম) এ, এটি findসমস্ত ফোল্ডারকেও তালিকাভুক্ত করতে চলেছে । যদি আপনার উপসর্গটি থাকে /usr, আপনি মুছতে চলেছেন/usr/*
মতিন উলহাক

8

হ্যাঁ, ইনস্টল করা ডিস্টুলেটগুলি কেবল মুছে ফেলা নিরাপদ। এটি ইনস্টল করা ফোল্ডার বা .egg ফাইলগুলির জন্য যায়। স্বাভাবিকভাবেই যে কোনও কিছু সেই কোডের উপর নির্ভর করে আর কাজ করবে না।

আপনি যদি এটি আবার কাজ করতে চান তবে কেবল পুনরায় ইনস্টল করুন।

যাইহোক, আপনি যদি ডিস্টুলেটগুলি ব্যবহার করেন তবে একাধিক সংস্করণ বৈশিষ্ট্যটিও বিবেচনা করুন। এটি আপনাকে যে কোনও একক প্যাকেজের একাধিক সংস্করণ ইনস্টল করতে দেয়। এর অর্থ যদি আপনি কেবল নতুন সংস্করণ ইনস্টল করতে চান তবে আপনাকে প্যাকেজের কোনও পুরানো সংস্করণ মুছতে হবে না।


5

উবুন্টু 12.04-তে, আমি খুঁজে পেয়েছি যে আপনাকে কেবলমাত্র ডিফল্টরূপে দেখার দরকার সেই স্থানটি নীচে

/usr/local/lib/python2.7/

এবং যদি কেবল সেখানে সম্পর্কিত ফোল্ডার এবং ফাইলটি সরিয়ে ফেলুন!


কখনও কখনও / usr / lib / পাইথনে <2.7 / 3.6>
ভিণী

4

এটি যদি পরীক্ষার এবং / বা বিকাশের উদ্দেশ্যে হয় তবে সেটআপলগুলিতে একটি বিকাশ কমান্ড থাকে যা প্রতিবার আপনি পরিবর্তন করার সময় আপডেট হয় (যাতে আপনি যখনই পরিবর্তন আনবেন তখনই আপনাকে আনইনস্টল এবং পুনরায় ইনস্টল করতে হবে না)। এবং আপনি এই কমান্ডটি ব্যবহার করে প্যাকেজটি আনইনস্টল করতে পারেন।

আপনি যদি এটি ব্যবহার করেন তবে স্ক্রিপ্ট হিসাবে আপনি যে কোনও কিছু ঘোষণা করবেন তা পিছনে ফিরবে ফাইল হিসাবে রেখে যাবে।


4

install --record + xargs rm

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

সমস্ত ফাইল সরিয়ে দেয় এবং কিন্তু খালি ডিরেক্টরিগুলি পিছনে ফেলে।

এটি আদর্শ নয়, প্যাকেজ বিরোধগুলি এড়ানোর জন্য এটি যথেষ্ট হওয়া উচিত।

এবং তারপরে আপনি পড়তে চাইলে ম্যানুয়ালি এই কাজটি শেষ করতে পারেন files.txt, বা সাহসী হয়ে ও খালি ডিরেক্টরি অপসারণটি স্বয়ংক্রিয় করতে পারেন mate

একজন নিরাপদ সহায়ক হবেন:

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 এ পরীক্ষিত 4


2

আমি কেবল একটি অজগর প্যাকেজটি আনইনস্টল করেছি এবং যদিও আমি নিশ্চিত নই যে আমি এটি পুরোপুরি করেছি, আমি যুক্তিযুক্ত আত্মবিশ্বাসী।

আমার প্যাকেজের সমস্ত ফাইলের কম-বেশি একই টাইমস্ট্যাম্প থাকবে এবং অন্য কোনও ফাইল হবে না এই ধারণায়, তারিখ অনুসারে অজগর সম্পর্কিত সমস্ত ফাইলের তালিকা পেয়ে শুরু করেছি ।

ভাগ্যক্রমে, আমি পাইথন ইনস্টল পেয়েছি /opt/Python-2.6.1; যদি আমি পাইথনটি ব্যবহার করতাম যা আমার লিনাক্স ডিস্ট্রো সহ আসে, তবে আমি সমস্ত কিছু ঘনঘন করতাম /usr, যা অনেক দিন সময় নিতে পারে।

তারপরে আমি কেবলমাত্র সেই তালিকাটি পরীক্ষা করেছিলাম এবং স্বস্তির সাথে উল্লেখ করেছি যে আমি যে সমস্ত স্টাফকে nuke করতে চেয়েছিলাম সেগুলির মধ্যে একটি ডিরেক্টরি /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-

(আমি মনে করি এটি জিএনইউ "সন্ধান" হবে, যাইহোক; ওএস এক্সে আপনি যে স্বাদ পাবেন সেটি "-প্রিন্টফ '% টি @'" সম্পর্কে জানে না)

আমি যে সব সময় ব্যবহার ।


2

উইন্ডোজ 7 এর জন্য,

নিয়ন্ত্রণ প্যানেল -> প্রোগ্রাম -> আনইনস্টল করুন

তাহলে

অপসারণ করার জন্য পাইথন প্যাকেজটি চয়ন করুন।


@ মৌরিসিও আমি তালিকায় পুরানো সংস্করণগুলি দেখতে পাচ্ছি না তবে আমি সাইট প্যাকেজগুলিতে ডিমের ফাইলগুলি দেখতে পাচ্ছি। এটা কি কোন সমস্যা?

2

উইন্ডোজ পাইথনের জন্য:

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

প্যাকেজটি ডিস্টুটিস ব্যবহার করে ইনস্টল করা থাকলে এটি কাজ করে না।
কেফینگ

1

ম্যাক ওএসএক্স-এ, আপনার পাথটপাইথন / সাইট-প্যাকেজ / এর অধীনে ম্যানুয়ালি এই 2 টি ডিরেক্টরি মুছে দিন :

  • {packageName N
  • {packageName} - {সংস্করণ in-ইনফো o

উদাহরণস্বরূপ, pyasn1 অপসারণ , যা একটি ডিস্টিল ইনস্টল করা প্রকল্প:

  • rm -rf lib / পাইথন 2.7 / সাইট-প্যাকেজ / pyasn1
  • rm -rf lib / পাইথন 2.7 / সাইট-প্যাকেজ / pyasn1-0.1.9-py2.7.egg-info

আপনার সাইট-প্যাকেজগুলি কোথায় তা সন্ধান করতে:

python -m site

4
প্রত্যাশার মতো কাজ করে।
c1377554

-1

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

সম্পন্ন!


4
আপনি কী করছেন এবং কেন কেবল কনসোল আউটপুট দেখানোর পরিবর্তে তা বোঝানোর চেষ্টা করুন।
হেডহান্টার জ্যামড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.