"পাইপ" দিয়ে কোনও প্যাকেজ আনইনস্টল করা কি নির্ভরশীল প্যাকেজগুলি সরিয়ে দেয়?


153

আপনি যখন pipকোনও প্যাকেজ ইনস্টল করতে ব্যবহার করেন , সমস্ত প্রয়োজনীয় প্যাকেজগুলিও এটি (নির্ভরতা) এর সাথে ইনস্টল করা হবে। সেই প্যাকেজটি আনইনস্টল করা কি নির্ভরযোগ্য প্যাকেজগুলি সরিয়ে ফেলবে?


1
আপনি কেন চেষ্টা করে দেখতে পারবেন না? আপনার প্রশ্নের উত্তর দেওয়ার জন্য আমি ঠিক এটি করব, তবে কোনও কারণে পিপ এই মুহুর্তে প্যাকেজ সূচকটি পেতে পারে না।
থমাস ভ্যান্ডার স্টিচিল

1
আমি পাইপ নিউজগ্রুপে পেয়েছি যে পিপ লোকেরা এই কার্যকারিতাটি চায় না, কমপক্ষে আপাতত আপাতত। কি সুন্দর!
মিশেল সামিয়া

4
@ThomasVanderStichele কারণ তারপর উত্তর না অনলাইনে পাওয়া ভবিষ্যৎ Googlers দের জন্য :) হবে
মার্ক

1
@ মার্ক এটি হবে, আপনি কেবল নিজের প্রশ্নের উত্তর এখানে লিখবেন।
টমাস ভ্যান্ডার স্টিচেল

5
@ থমাস ভান্ডারস্টিথিল: আমি ওপি নই, তবে এখানে এসও'র জন্য এটি একটি খুব আইনী প্রশ্ন ও উত্তর: pipএটি ক) কুখ্যাতভাবে নৃশংস এবং সংস্করণ-নির্ভর, এছাড়াও খ) কিছু গ্রাহক ইনস্টলের সাথে আমাকে কাজ করতে হয়েছিল, এটি দিয়ে ইনস্টল করা হয়েছিল প্রশাসকের অধিকার (যদিও প্যাকেজগুলি ছিল না), তাই এটি ভেঙে বা আনইনস্টল করা অত্যন্ত শোকের বিষয় এবং এটি সঠিকভাবে করার জন্য আপনার একটি গুলি ছিল had গ) ইন্টারনেট সংযোগ মহান নাও হতে পারে; সুরক্ষার কারণে কর্পোরেট মেশিনগুলি প্রায়শই ফায়ারওয়াল করা থাকে, সুতরাং আপনি সরাসরি সংযোগ গ্রহণ করতে পারবেন না এবং আপনার যা প্রয়োজন তার সমস্ত সংস্করণ এবং এর সংস্করণ আগেই জেনে নিতে হবে এবং এটি ডাউনলোড করতে হবে।
স্মি

উত্তর:


80

না, এটি নির্ভরতা প্যাকেজগুলি আনইনস্টল করে না। এটি কেবলমাত্র নির্দিষ্ট প্যাকেজটি সরিয়ে দেয়:

$ pip install specloud
$ pip freeze # all the packages here are dependencies of specloud package

ফিগলিফ == 0.6.1
নাক == 1.1.2 পিনোকিও ==
0.3
স্প্ল্যাডউড == 0.4.5

$ pip uninstall specloud
$ pip freeze

ফিগলিফ == 0.6.1
নাক == 1.1.2 পিনোকিও
== 0.3

আপনি দেখতে পাচ্ছেন যে এই প্যাকেজগুলি হ'ল নির্ভরতা specloudএবং সেগুলি এখনও আছে, কিন্তু specloudপ্যাকেজটি নিজেই নয়।

নীচে উল্লিখিত হিসাবে, আপনি প্যাকেজ প্লাস অব্যবহৃত নির্ভরতা অপসারণ করতে পাইপ-অটোরমোভ ইউটিলিটিটি ইনস্টল ও ব্যবহার করতে পারেন।


2
প্যাকেজের একচেটিয়া নির্ভরতা প্যাকেজ সম্পর্কে কী specloud?
ফিউশন

@ ফিউশন packages প্যাকেজগুলি হ'ল স্প্লাউডের নির্ভরতা।
বার্নার্ডো

250

আপনি প্যাকেজ প্লাস অব্যবহৃত নির্ভরতা অপসারণ করতে পাইপ-অটোরমোভ ইউটিলিটিটি ইনস্টল ও ব্যবহার করতে পারেন।

# install pip-autoremove
pip install pip-autoremove
# remove "somepackage" plus its dependencies:
pip-autoremove somepackage -y

9
দুর্ভাগ্যক্রমে এটির সত্যিকারের পাইথন 3 সমর্থন নেই, তবে ( github.com/invl/pip-autoremove/issues/18 দেখুন )।
asmaier

10
অক্টোবর 2019. হিসাবে পাইথন 3 আমার জন্য ভাল কাজ করা
খাবার

@ lovers.by.Jesus - আমি পাইথন ৩.৮.৩ এ আছি এবং আমি পরীক্ষা করেছি এবং এখনও কমান্ডটি pip-autoremove(ড্যাশ আন্ডারস্কোর নয়) হিসাবে সম্পাদিত দেখতে পেয়েছি । pip_autoremoveআমাকে দেয় command not found
bwv549

@ bwv549 আমাকে ব্যাখ্যা করতে হবে যে আমি এটি সম্পাদন করেছি python<version>(যখন সংস্করণ নির্দিষ্ট করতে হবে)। এইভাবে, আমাদের সাথে নামটি অভিযোজিত করা দরকার pip_autoremove(প্যাকেজের নাম হিসাবে ড্যাশ অনুমোদিত নয়)। উদাহরণস্বরূপ python3.8 pip_autoremoveকাজ করে কিন্তু python3.8 pip-autoremoveহয় না। অন্যথায়, আপনি যেমন সরল টার্মিনাল কমান্ড হিসাবে চিহ্নিত করেছেন, pip-autoremoveএটি পুরোপুরি কাজ করে :) - যদিও কেবলমাত্র সিস্টেমের ডিফল্ট অজগর সংস্করণ ব্যবহৃত হয়। আপনার বার্তার জন্য ধন্যবাদ.
প্রিয়.বি.জেসুস

9

আমি এই ব্যাশ লাইনটি ব্যবহার করে একটি প্যাকেজের নির্ভরতা সাফল্যের সাথে সরিয়ে ফেলেছি:

for dep in $(pip show somepackage | grep Requires | sed 's/Requires: //g; s/,//g') ; do pip uninstall -y $dep ; done

এটি পাইপ 1.5.4 এ কাজ করেছে


40
যদিও টেকনিক্যালি এই সমাধান নেই সফলভাবে সব নির্ভরতা সরান হিসাবে অন্যান্য উত্তর উল্লেখ করা হয়েছে, এটা আরো নির্ভরতা যা হয় আনইনস্টল টার্গেটের অনন্য নয় সিস্টেমের প্যাকেজ থেকে ইনস্টল বেশী সহ। উদাহরণস্বরূপ, আমার সিস্টেমে এই স্ক্রিপ্টটি শেষ পর্যন্ত ব্যর্থ হয়েছিল কারণ টার্গেট প্যাকেজের সাথে পাইপের সাথে নির্ভরশীলতা ছিল তাই স্ক্রিপ্টটি শেষ হওয়ার আগেই পাইপ তার নিজস্ব নির্ভরতা আনইনস্টল করে এবং পরে ব্যর্থ হয়।
sinisterstuf

19
সাবধান থাকুন এটি কেবল পরবর্তী স্তর নীচে নির্ভরতাগুলি সরিয়ে দেয় , তবে সেই নির্ভরতার নির্ভরতা নয় depend
tamakisquare

0

কারও কারও পক্ষে কাজ করা সামান্য কঠিন হলেও আমি সমাধানটি খুঁজে পেয়েছি।

1 ম পদক্ষেপ (পাইথন 3 এবং লিনাক্সের জন্য):
পিপ 3 ইনস্টল করুন পাইপ-অটোরমোভ
২ য় ধাপ:
সিডি / হোম / ইউজারনামগোশের / লোকাল / বিলিন /
তৃতীয় পদক্ষেপ:
জিডিট / হোমে / ইউজারনেমগোয়েসের / লোকাল / লিবি / পাইপথন ৩.৮ / সাইট- প্যাকেজ / পিপ_আউটোরমোভ.পি
এবং সমস্ত পিপ (গুলি) পিপ 3 চতুর্থ ধাপে পরিবর্তন করুন:।

কমপক্ষে, এটি আমার পক্ষে কাজ করেছিল ...


-1

আপনার https://github.com/cls1991/pef ব্যবহার করে দেখতে পারেন । এটি এর সমস্ত নির্ভরতা সহ প্যাকেজ সরিয়ে ফেলবে।


দুর্ভাগ্যক্রমে, পেফ কেবল ভার্চুয়াল পরিবেশে কাজ করছে বলে মনে হচ্ছে।
বাস

এটি কেবল সুরক্ষার বিবেচনায়, আপনি কোডটি হ্যাক করতে সক্ষম হন, কেবল সুরক্ষা কোডটি স্যুইচ অফ করতে পারেন।
cls1991 11

1
এটি কি নিশ্চিত করে যে depend নির্ভরতাগুলি "ঝুঁকিপূর্ণ" অর্থাত্ অন্যান্য বিতরণগুলি দ্বারা অবিবাহিত?
wim

হ্যাঁ, এটি রেফারেন্স গণনার উপর ভিত্তি করে।
cls1991

আরে ছেলেরা আমি কোডটি কাঁটাচামচ করে সংশোধন করেছি। নীচের লিঙ্কটি সন্ধান করুন। github.com/nalangekrushna/pef
Krissh
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.