হোমব্রিউ: পাইথন 3.7 থেকে পাইথন 3.6.5.x রোলব্যাক?


72

brew upgradeআমার সিস্টেম পাইথনকে পাইথন 3.7 এ আপগ্রেড করা হয়েছে। দুর্ভাগ্যক্রমে, পাইথন ৩.7 আমার যে অন্যান্য সফটওয়্যারটি ব্যবহার করতে হবে তা ভেঙে ফেলে (এতে উত্তরযোগ্য তবে সীমাবদ্ধ নয়)। আমি ভাবছি আগামী সপ্তাহ বা তার মধ্যে এই সমস্যাগুলি সমাধান করা হবে তবে এর মধ্যে আমি পাইথন ৩.6.৫.x এ ফিরে যেতে চাই like

একটি brew info pythonশো দেখায় যে পূর্ববর্তী সংস্করণগুলি এখনও ইনস্টল করা আছে এবং শুদ্ধ নয়:

 brew info python
python: stable 3.7.0 (bottled), HEAD
Interpreted, interactive, object-oriented programming language
https://www.python.org/
/usr/local/Cellar/python/3.6.5 (4,825 files, 100.8MB)
  Poured from bottle on 2018-03-31 at 20:21:57
/usr/local/Cellar/python/3.6.5_1 (4,788 files, 99.9MB)
  Poured from bottle on 2018-06-20 at 16:00:26
/usr/local/Cellar/python/3.7.0 (4,869 files, 103.3MB)
  Poured from bottle on 2018-07-01 at 19:30:37
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/python.rb

অন্যান্য সাইটগুলি দ্বারা প্রস্তাবিত বিভিন্ন brew linkএবং brew installআদেশগুলি কার্যকর বলে মনে হচ্ছে না:

 brew link python@3.6.5
Error: No such keg: /usr/local/Cellar/python@3.6.5
 brew link python@3.6.5_1
Error: No such keg: /usr/local/Cellar/python@3.6.5_1
 brew install python@3.6.5
Error: No available formula with the name "python@3.6.5" 
==> Searching for a previously deleted formula (in the last month)...
Error: No previously deleted formula found.
==> Searching for similarly named formulae...
==> Searching local taps...
Error: No similarly named formulae found.
==> Searching taps...
==> Searching taps on GitHub...
Error: No formulae found in taps.

10
: যারা 3.6.5_1 ইনস্টল না, সেখানে একটি উপায় চোলাই মাধ্যমে এটি পেতে হয় stackoverflow.com/a/51125014/760905
MartyMacGyver

অজগর সংস্করণ রয়েছে 7. 3..১। সম্ভবত এটি আপনার সমস্যার সমাধান করে।
jmh

উত্তর:


82

আপনার যদি এখনও পূর্ববর্তী সংস্করণগুলি উপলব্ধ থাকে তবে আপনি কেবল ব্যবহার করতে পারেন

brew switch python 3.6.5_1

1
আমাকে কয়েক মাস দিন আমি ৩.7 এ স্যুইচ করতে প্রস্তুত থাকব। যখন সেই দিনটি আসবে, আমি কীভাবে এই brew switch ...আদেশটি 3.7 এ ফিরে যেতে চাই?
পিটার ব্যাংটসন

পাইথন 3.6.5 এর সাথে সংযুক্ত ভার্চুয়াল পরিবেশ তৈরির সাথে এটি কীভাবে আলাদা?
jmh

@jmh কোনও কারণে আমার 3.6.5 ভার্চুয়াল পরিবেশটি ভেঙে গেছে যখন আমি হোমব্রিউ ব্যবহার করে 3.7 এ আপডেট হয়েছে, এবং কেন আমি খুব একটা বুঝতে পারি নি। অবশ্যই, আমি ভার্চুয়াল পরিবেশ তৈরির কারণগুলির মধ্যে একটি হ'ল সমস্যাটি এড়ানো। পিছনে স্যুইচিং এটি স্থির করে। যেহেতু 3.7 তে কিছুই আমার পক্ষে গুরুত্বপূর্ণ নয়, আমি মুহুর্তের জন্য কেবল 3.6.5 দিয়ে আঁকছি st
নিলসিলুচ

2
আমি বুঝতে পেরেছিলাম যে উপরের কারণটি হচ্ছে পাইথনের অন্তর্নির্মিত ভেন্টটি সিমলিংক তৈরি করে, যা পাইথন ৩.6.x থেকে ৩.7.x এ যাওয়ার সময় ভেঙে যায়। python3 -m venv --copies venvসিমলিংক তৈরির পরিবর্তে পাইথন ফাইলগুলি অনুলিপি সহ ভেনভ তৈরি করা, যা আপনার পাইথন সংস্করণটি আপগ্রেড করার সময় এগুলি ভাঙ্গা থেকে রোধ করে।
নিলসিলোক

8
Error: python does not have a version "3.6.5_1" in the Cellar. python installed versions: 3.7.0
mrgloom

51

আপনার যদি স্যুইচ করার জন্য পূর্ববর্তী সংস্করণ না থেকে থাকে তবে আপনি আগের সূত্রটি এভাবে ইনস্টল করতে পারেন:

$ brew unlink python
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb

2019-10 আপডেট করুন

--ignore- নির্ভরতা বিজ্ঞপ্তি

আপনি ত্রুটি --ignore-dependenciesকাটিয়ে ওঠার জন্য পতাকা ব্যবহার করছেন যদি আপনি এই ধরনের ইনস্টলেশন পরে recursive dependencyআপনি নিম্নলিখিত ত্রুটিটি দিতে পারে pip3 install:

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

একটি নির্ভরশীলতা হ'ল প্রথমে তার নির্ভরতা ইনস্টল করা (বাদে সব কিছু sphinx-doc)

$ brew install pkg-config gdbm openssl readline sqlite xz

লক্ষ্য করুন যে এটির দরকার opensslএবং এটি নয় openssl@1.1 যা হোমব্রাব্য অজগর 3.7.4_1 এ সর্বশেষ নির্ভরতা


1
আমি মনে করি এটি কার্যকর হবে যদি আপনিও ব্যাখ্যা করেন যা কি brew unlink pythonকরে।
nbro

তদুপরি, আপনার জোর দেওয়া উচিত যে এটি আপনার বর্তমান পাইথন ৩. version সংস্করণটি দৃশ্যত সরিয়ে দেয় না এবং পরে আপনি এটিতে ফিরে যেতে পারেন (উদাহরণস্বরূপ যা https://apple.stackexchange.com/a/329192/90775 প্রস্তাবিত তা ব্যবহার করে )।
nbro

9
আপনি একটি recursive নির্ভরতা সম্পর্কে একটি বিষয় পেলে, এই নির্ভরতা উপেক্ষা দ্বারা বাইপাস করা যেতে পারে: brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb
এরিক ভিনিয়ার

যদি --ignore-dependenciesস্ফিংক্সের কারণে কাজ না করে তবে স্পিনিক্সের
থাডক

Error: python contains a recursive dependency on itself: python depends on sphinx-doc sphinx-doc depends on python
পাংক্রোকপলি

11

দুটি বিকল্প

পূর্বে ইনস্টল করা পাইথন সংস্করণটি পুনরুদ্ধার করতে:

brew switch python 3.x.x_x # Ex. 3.6.5_1

brew info pythonআপনি পূর্বে কি ইনস্টল করেছেন তা দেখতে ব্যবহার করুন

পাইথন 3.6.5 ব্যবহারের একটি পরিষ্কার ইনস্টল করতে:

brew unlink python # If you have installed (with brew) another version of python
brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb

দীর্ঘ উত্তর

হোমব্রু দিয়ে পাইথন ইনস্টল করার জন্য দুটি সূত্র রয়েছে: python@2এবং python
প্রথমটি পাইথন 2 এবং দ্বিতীয়টি পাইথন 3 এর জন্য।

দ্রষ্টব্য: আপনি ওয়েবে পুরানো উত্তরগুলি সন্ধান করতে পারেন যেখানে এটি python3পাইথন সংস্করণ 3 ইনস্টল করার সূত্রের নাম হিসাবে উল্লেখ করা হয়েছে । এখন এটি ঠিক python!

ডিফল্টরূপে, এই সূত্রগুলির সাহায্যে আপনি পাইথনের সংশ্লিষ্ট মূল সংস্করণের সর্বশেষতম সংস্করণ ইনস্টল করতে পারেন। সুতরাং, আপনি সরাসরি 3.6 এর মতো একটি ছোটখাটো সংস্করণ ইনস্টল করতে পারবেন না।

সমাধান:

এর brewসাহায্যে আপনি সূত্রের ঠিকানা ব্যবহার করে একটি প্যাকেজ ইনস্টল করতে পারেন, উদাহরণস্বরূপ গিট সংগ্রহস্থলটিতে।

brew install https://the/address/to/the/formula/FORMULA_NAME.rb

বা বিশেষত পাইথন 3 এর জন্য

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/COMMIT_IDENTIFIER/Formula/python.rb

আপনার যে ঠিকানাটি নির্দিষ্ট করতে হবে তা হ'ল কাঙ্ক্ষিত সংস্করণটির সূত্রের সর্বশেষ কমিটের ঠিকানা (পাইথন.আরবি)। হোমব্রিউ-কোর / ফর্মুলা / পাইথন.আরবি এর ইতিহাস দেখে আপনি কমেন্ট শনাক্তকারীকে খুঁজে পেতে পারেন

https://github.com/Homebrew/homebrew-core/commits/master/Formula/python.rb

পাইথন> 3.6.5

উপরের লিঙ্কে আপনি পাইথনের কোনও সংস্করণের 3.6.5 এর উপরে কোনও সূত্র পাবেন না। সেই (অফিসিয়াল) সংগ্রহস্থলের রক্ষণাবেক্ষণকারীরা পাইথন ৩. 3. প্রকাশের পরে, তারা কেবল পাইথন ৩. 3. এর রেসিপিটিতে আপডেট জমা দেয়।

উপরে বর্ণিত হিসাবে, হোমব্রু দিয়ে আপনার কাছে কেবল পাইথন 2 (পাইথন @ 2) এবং পাইথন 3 (পাইথন) রয়েছে, পাইথন ৩.6 এর কোনও সুস্পষ্ট সূত্র নেই

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


1
github.com/sashkab/homebrew-python এটা করতে মনে হয়
ফড়িং


2

আপনি অস্থায়ীভাবে ব্যাকডেট করতে পারেন homebrew-coreএবং HOMEBREW_NO_AUTO_UPDATEভেরিয়েবলটি এটি স্থানে ধরে রাখতে পারেন:

cd `brew --repo homebrew/core`
git checkout f2a764ef944b1080be64bd88dca9a1d80130c558
export HOMEBREW_NO_AUTO_UPDATE=1
brew install python
brew install vim --with-python

আমি স্থায়ীভাবে হোমব্রিউ-কোরকে ব্যাকডেটিং করার পরামর্শ দিচ্ছি না, কারণ আপনি সুরক্ষা প্যাচগুলি মিস করবেন, তবে এটি পরীক্ষার উদ্দেশ্যে কার্যকর।

brew extractকমান্ডটি ব্যবহার করে আপনি নিজের ট্যাপে (tap_owner / tap_name) হোমব্রিউ সূত্রের পুরানো সংস্করণগুলিও বের করতে পারেন :

brew extract python tap_owner/tap_name --version=3.6.5

নিজের ট্যাপটি তৈরি করা বা 3.6 এবং অন্যান্য সিরিজ আপডেট সহ স্বয়ংক্রিয়ভাবে পরিচালিত এমন কাউকে খুঁজে পাওয়া অবশ্যই যাওয়ার সেরা উপায়। যদি তারা এটি যথাযথভাবে করে তবে আপনার একটি সম্পূর্ণ যোগ্য সংস্করণ থাকতে পারে এবং এর সাথে লিঙ্ক করতে পারেন brew link python@3.6.x। যদিও pyenvপাশাপাশি অন্য একটি বিকল্প।
ড্রাগন 788

-1

আমি এই বিষয়ে বিশেষজ্ঞ নই, তবে একই সমস্যা ছিল। এটিই আমার পক্ষে কাজ করেছে: $ brew unlink python $ brew uninstall --ignore-dependencies python3 $ brew uninstall pipenv then from https://www.python.org/downloads/ installed python 3.6.6 $ brew install pipenv

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