আমি কীভাবে পিপ এবং প্রয়োজনীয় ফাইল ব্যবহার করে নির্দিষ্ট প্যাকেজগুলি আপগ্রেড করতে পারি?


436

আমি আমার জ্যাঙ্গো প্রকল্পগুলির জন্য একটি ভার্চুয়ালেনভে প্রয়োজনীয় ফাইলগুলি সহ পাইপ ব্যবহার করছি। আমি কয়েকটি প্যাকেজ আপগ্রেড করার চেষ্টা করছি, উল্লেখযোগ্যভাবে নিজেই জ্যাঙ্গো, এবং উত্স কোড বিবাদ সম্পর্কে আমি একটি ত্রুটি পাচ্ছি:

Source in `<virtualenv`>/build/Django has version 1.2.3 that conflicts with Django==1.2.4 (from -r requirements/apps.txt (line 3))

এটি আমার প্রয়োজনীয়তার ফাইলটিতে জাঙ্গোর সংস্করণ সংখ্যাটি 1.2.3 থেকে 1.2.4 এ আপডেট করার পরে। প্রকৃতপক্ষে আপগ্রেড করতে আমি এই আদেশটি ব্যবহার করছি:

pip --install --upgrade -E `<virtualenv dir`> --requirement `<requirements file`>

মোট প্যাকেজ পুনরায় ডাউনলোডের জন্য এমন কোনও পতাকা আমি পাই না I এমনকি আমি প্রথমে একটি আনইনস্টল কমান্ড চালানোর চেষ্টা করেছি, তারপরে ইনস্টল করুন তবে কোনও ডাইস নেই। আমি কি কিছু মিস করছি?


1
দয়া করে @ ডাঃ-জিম্বোব এর উত্তর যাচাই করুন কারণ সাম্প্রতিক পিপের সংস্করণগুলি আপনি যে প্যাকেজটি আপগ্রেড করছেন তার উপর নির্ভর করে অন্য সমস্ত নির্ভরতা আপগ্রেড করবে।
লোকেশ মেহের

উত্তর:


61

এটি ঠিক আপনার সমস্যা কিনা তা আমি নিশ্চিত নই, তবে আমার ক্ষেত্রে, আমি জ্যাঙ্গোকে 1.2.4 এ উন্নীত করতে সক্ষম হইনি - আমি সর্বদা 1.2.3 সংস্করণ দিয়ে শেষ করছিলাম, তাই আমি জাঙ্গো এর সাথে আনইনস্টল করেছি:

<virtualenv>/bin/pip uninstall Django

তারপরে আমি <virtualenv>/build/Djangoডিরেক্টরিটি সরিয়েছি এবং শেষ পর্যন্ত আমি এর সাথে যথাযথ সংস্করণটি ইনস্টল করেছি:

<virtualenv>/bin/pip install Django

আশা করি এটি সাহায্য করবে।


53
এটি সেরা অনুশীলন নয়। @ জোয়েজির উত্তরে বর্ণিত হিসাবে ব্যবহার করুন pip install Django -Uবা ব্যবহার করুন pip install Django --upgrade
আহমাদ

@ আহমাদ রাজি। পিপ এবং ভার্চুয়াল এনভিউতে একটি মসৃণ আপডেট প্রক্রিয়া হওয়া উচিত।
পার্থ জোশী

1270

আমি নিম্নলিখিত কমান্ডটি চালিত করেছি এবং এটি 1.2.3 থেকে 1.4.0 এ আপগ্রেড হয়েছে

pip install Django --upgrade

আপগ্রেডের জন্য শর্টকাট:

pip install Django -U

দ্রষ্টব্য : আপনি যে প্যাকেজটি আপগ্রেড করছেন তার যদি কোনও প্রয়োজনীয়তা থাকে তবে এই কমান্ডটি সমস্ত প্রয়োজনীয়তা উপলভ্য সর্বশেষতম সংস্করণগুলিতে আপগ্রেড করবে। পাইপের সাম্প্রতিক সংস্করণগুলিতে, আপনি নির্দিষ্ট করে এই আচরণটি প্রতিরোধ করতে পারেন--upgrade-strategy only-if-needed । এই পতাকাটির সাথে নির্ভরশীলতাগুলি আপগ্রেড করা হবে না যতক্ষণ না নির্ভর প্যাকেজগুলির ইনস্টল করা সংস্করণগুলি আপগ্রেড হওয়া প্যাকেজের প্রয়োজনীয়তা পূরণ না করে।


7
এটি আমার জন্য আমার সমস্ত প্যাকেজড আপডেট করেছে এবং সম্পূর্ণরূপে সমস্ত গোলমাল করেছে !!!! নথিতে বলা হয়েছে: - সমস্ত প্যাকেজকে নতুন উপলব্ধ সংস্করণে আপগ্রেড করুন। এটি সঠিক নাকি আমি কিছু ভুল করেছি?
প্রমিথিউস

4
@ অরবিটারফ্লিট আমাকে "অনুরোধগুলি" আপডেট করার দরকার ছিল তাই আমি করেছিলাম pip install Requests --upgradeএবং কেবল "অনুরোধগুলি" আপগ্রেড করা হয়েছিল। বিবরণটি যখন ডক্সগুলি দেখি তখন " সমস্ত নির্দিষ্ট প্যাকেজগুলি আপগ্রেড করে" বলে ।
হার্পারভিলি 28'15

31
মনোনিবেশ, এটি সমস্ত নির্ভরতা আপডেট করে এবং সবকিছু নিয়ে গন্ডগোল করতে পারে। সেরা বিকল্পটি প্যাকেজটি আনইনস্টল করা এবং পুনরায় ইনস্টল করা।
marcelosalloum

3
নির্দিষ্ট প্যাকেজ ব্যবহার আপগ্রেড করতেpip install --upgrade django==1.4.0
তিমি_সামগ্রী

এটি প্রশ্ন অনুসারে সঠিক উত্তর হওয়া উচিত বা প্রশ্নটি নিজেই ভুল।
int soumen

51

পাইপ ডক্স অনুসারে উদাহরণ 3

pip install --upgrade django

তবে আমার অভিজ্ঞতার ভিত্তিতে, এই পদ্ধতিটি ব্যবহার করে এটি সম্পর্কিত যে কোনও প্যাকেজও আপগ্রেড করবে। উদাহরণ:

মনে করুন আপনি আপগ্রেড করতে চাচ্ছেন somepackageপ্রয়োজন যে django >= 1.2.4এটি আপগ্রেড করবে পদ্ধতি এই ধরনের ব্যবহার somepackageএবং djangoনতুন আপডেটে। কেবল নিরাপদে থাকুন:

# assume you want to keep django 1.2.4
pip install --upgrade somepackage django==1.2.4

এটি করার ফলে somepackageজাঙ্গোকে 1.2.4 সংস্করণে আপগ্রেড করা হবে


ভাল ধরা তবে আপনার ব্যাখ্যাটি বিভ্রান্তিকর কারণ আপনি djangoমূল প্যাকেজ হিসাবে শুরু করেছিলেন তারপরে আপনি যে উদাহরণটি ব্যবহার করেন somepackageএবং তারপরে djangoনির্ভরতা হিসাবে ব্যবহার করেন।
দীর্ঘ

34

শর্টকাট কমান্ড এর জন্য --upgrade:

pip install Django --upgrade

হল:

pip install Django -U

7
(অসম্পূর্ণ) উত্তরের পরিবর্তে এই বিট তথ্য যুক্ত করার জন্য বিদ্যমান উত্তরটি সম্পাদনা করবেন?
1

@ a1an দয়া করে প্রস্তাবিত সম্পাদনাতে কোন অতিরিক্ত তথ্য যুক্ত করা উচিত বলে মনে করেন? ধন্যবাদ
অ্যারন লেলেভিয়ার

4
আমি বলতে চাইছি আপনি জোয়েজি প্রদত্ত উত্তরটি সম্পাদনা করতে এবং সেখানে প্রসঙ্গে শর্টকাট বিকল্পটি সরবরাহ করে।
a1an

17

আপনি যদি কোনও প্যাকেজ আপগ্রেড করেন তবে পুরানোটি আনইনস্টল করা হবে।

এটি করার একটি সুবিধাজনক উপায় হ'ল এই পাইপ-আপগ্রেডার ব্যবহার করা যা requirements.txtনির্বাচিত প্যাকেজগুলি (বা সমস্ত প্যাকেজ) জন্য আপনার ফাইলের সংস্করণগুলিও আপডেট করে ।

স্থাপন

pip install pip-upgrader

ব্যবহার

আপনার ভার্চুয়ালেনভকে সক্রিয় করুন (গুরুত্বপূর্ণ, কারণ এটি বর্তমান ভার্চুয়ালেনভে আপগ্রেড হওয়া প্যাকেজগুলির নতুন সংস্করণ ইনস্টল করবে)।

cd আপনার প্রকল্প ডিরেক্টরিতে প্রবেশ করুন, তারপরে চালান:

pip-upgrade

উন্নত ব্যবহার

প্রয়োজনীয়তাগুলি যদি কোনও মানহীন স্থানে স্থাপন করা হয় তবে সেগুলি আর্গুমেন্ট হিসাবে প্রেরণ করুন:

pip-upgrade path/to/requirements.txt

আপনি যদি প্যাকেজটি আপগ্রেড করতে চান তা যদি আপনি ইতিমধ্যে জানেন তবে কেবল তাদের আর্গুমেন্ট হিসাবে প্রেরণ করুন:

pip-upgrade -p django -p celery -p dateutil

আপনার যদি প্রাক-রিলিজ / পোস্ট-রিলিজ সংস্করণে আপগ্রেড করতে --prereleaseহয় তবে আপনার আদেশে যুক্তি যুক্ত করুন ।

সম্পূর্ণ প্রকাশ: আমি এই প্যাকেজটি লিখেছি। আশা করি এটা সাহায্য করবে.


1
এই পদ্ধতির সাথে সমস্ত প্যাকেজ একবারে আপগ্রেড করার বিকল্প রয়েছে (অর্থাত্ সেগুলি তালিকাভুক্ত না করে)?
বজর্কস এক নম্বর ভক্ত

1
@ মাইকপ্যালাইমস হ্যাঁ: pip-upgrade -p allআপনার কোনও ইনপুট ছাড়াই আপনার সমস্ত প্যাকেজগুলি আপডেট করবে এবং প্রয়োজনীয় ফাইলগুলি আপডেট করবে।
সিমিয়ন আগাভ্রিলোয়েই

15

যদি আপনি কেবল একটি নির্দিষ্ট প্যাকেজ নামে পরিচিতটিকে আপগ্রেড করতে চান তবে somepackageপিপের সাম্প্রতিক সংস্করণগুলিতে আপনার যে কমান্ডটি ব্যবহার করা উচিত তা হ'ল

pip install --upgrade --upgrade-strategy only-if-needed somepackage

এটি খুব কার্যকর যখন আপনি জ্যাঙ্গোতে এমন একটি অ্যাপ্লিকেশন তৈরি করেছিলেন যা বর্তমানে কেবল জাজানো একটি নির্দিষ্ট সংস্করণে কাজ করবে (বলুন জাজানো = 1.9.x) এবং কিছু বাগ-ফিক্স / নতুন বৈশিষ্ট্য সহ কিছু নির্ভরশীল প্যাকেজ আপগ্রেড করতে চান এবং আপগ্রেড প্যাকেজ নির্ভর করে জাঙ্গোতে (তবে 1.5 এর পরে জাঙ্গোর যে কোনও সংস্করণ বলার সাথে কাজ করে)। এর ডিফল্ট আচরণ pip install --upgrade django-some-packageহ'ল জ্যাঙ্গোকে সর্বশেষ উপলব্ধ সংস্করণে আপগ্রেড করা যা অন্যথায় আপনার অ্যাপ্লিকেশনটি ভেঙে দিতে পারে, যদিও --upgrade-strategy only-if-neededনির্ভরযোগ্য প্যাকেজগুলির সাথে এখন কেবল প্রয়োজনীয় হিসাবে আপগ্রেড করা হবে।


4

সাধারণত, পিপ নিজেই পরিষ্কার হয়ে যাবে এবং বিল্ড ডিরেক্টরিটির সামগ্রীগুলি সরিয়ে ফেলবে। এটি না করার একমাত্র সময়টি হ'ল:

  1. আপনি ব্যবহার করেছেন --no-install বিকল্পটি
  2. আপনি সম্পাদনযোগ্য প্যাকেজ ব্যবহার করছেন
  3. ইনস্টলেশন বাতিল হয়েছে বা অন্যথায় বাধা ছিল।

অন্য সমস্ত ক্ষেত্রে, আপনার এমন buildডিরেক্টরি থাকা উচিত নয় যা আপনার পরিবেশকে আটকে রেখেছে।


1

আপগ্রেড করার জন্য নির্দিষ্ট সংস্করণ সংজ্ঞা দেওয়া আমাকে কেবলমাত্র আপগ্রেড কমান্ডের পরিবর্তে সহায়তা করেছিল।

pip3 install larapy-installer==0.4.01 -U

0

এটি আমার জন্য "পাইপ ইনস্টল -I - আপগ্রেড psutil - ফোর্স" সমস্যাটি সমাধান করেছে তারপরে কেবল নতুন সংস্করণ দিয়ে psutil আনইনস্টল করুন এবং আশা করি আপনি হঠাৎ পুরানো সংস্করণটি ইনস্টল করতে পারেন (:


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