मैं होमबॉव का उपयोग करके macOS में पायथन 3 के पिछले संस्करण को कैसे स्थापित कर सकता हूं?


133

मैं कैसे का उपयोग कर macOS में अजगर 3 के पिछले संस्करण को स्थापित कर सकते हैं?

कमांड के साथ brew install pythonमुझे पायथन 3 (वर्तमान में v3.7.0) का नवीनतम संस्करण मिला है, लेकिन मैं अजगर 3.6 (वर्तमान में 3.6.5) का अंतिम संस्करण चाहता हूं।

मैंने एक और पैकेज के बारे में पढ़ा है pyenvजो विभिन्न अजगर स्थापना को संभालने में सहायता कर सकता है, लेकिन यह समाधान मेरे लिए उपयुक्त नहीं है।


5
इसके लायक क्या है, पायथन के कई संस्करणों के लिए होमब्रे का समर्थन संक्षिप्त है, और उत्तरोत्तर खराब हो रहा है। मैं आपको पायथन को स्थापित करने के लिए होमब्रे का उपयोग करने से बचने की सलाह दूंगा Python.org , Python के विभिन्न संस्करणों के लिए macOS इंस्टॉल पैकेज प्रदान करता है जिसे एक-दूसरे के साथ साइड-बाय-साइड (और यदि आप चाहें तो होमबॉर्न पायथन इंस्टॉलेशन के साथ-साथ) स्थापित किया जा सकता है। या तो उन पैकेजों का उपयोग करना या पाइनेव जैसे उपकरण का उपयोग करना अंततः आपको लंबे समय में बहुत सारे दुःखों से बचाएगा।
डैनियल प्राइडेन

जवाबों:


256

संक्षिप्त जवाब

पायथन 3.6.5 का एक साफ स्थापित करने के लिए उपयोग करें:

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

यदि आप पहले से स्थापित संस्करण को पुनर्प्राप्त करना चाहते हैं, तो:

brew info python           # To see what you have previously installed
brew switch python 3.x.x_x # Ex. 3.6.5_1

लंबा जवाब

होमब्रे के साथ पायथन को स्थापित करने के दो सूत्र हैं: 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

आपके द्वारा निर्दिष्ट किया जाने वाला पता वांछित संस्करण के लिए सूत्र (python.rb) की अंतिम प्रतिबद्धता का पता है। आप homebrew-core / Formula / python.rb के इतिहास को देखकर कमेंट आइडेंटिफ़ायर पा सकते हैं

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

पायथन> 3.6.5

ऊपर दिए गए लिंक में आपको 3.6.5 से ऊपर पायथन के संस्करण के लिए कोई सूत्र नहीं मिलेगा। उस (आधिकारिक) भंडार के अनुरक्षकों ने पायथन 3.7 को जारी करने के बाद, वे केवल पायथन 3.7 के नुस्खा के लिए अपडेट प्रस्तुत करते हैं।

जैसा कि ऊपर बताया गया है, होमब्रे के साथ आपके पास केवल पायथन 2 (अजगर 2 @) और पायथन 3 (अजगर) है, पायथन 3.6 के लिए कोई स्पष्ट सूत्र नहीं है

यद्यपि वे मामूली अपडेट ज्यादातर मामलों में अप्रासंगिक हैं और अधिकांश उपयोगकर्ताओं के लिए, मैं यह खोज करूंगा कि किसी ने 3.6 के लिए एक स्पष्ट सूत्र किया है।


2
यह कैसे प्रभावित करेगा या Homebrew में संकुल के साथ सहभागिता करेगा जो डिफ़ॉल्ट python3 दुभाषिया पर निर्भर करता है?
टेलीमेकस

1
किसी भी मामले में, अनुप्रयोगों के आधार पर एक पायथन (काढ़ा या नहीं के साथ स्थापित) अनुप्रयोगों पथ में एक python3 निष्पादन योग्य के लिए दिखेगा, और आप python3 python3.6 की ओर इशारा करते हुए होंगे। इस प्रकार, आपका डिफ़ॉल्ट पायथन 3 3.6 होगा (यदि आप ऊपर दिए गए उदाहरण का उपयोग करते हैं) और यह पर्याप्त होना चाहिए। अजगर 3.7 तो हाल ही में है; मुझे संदेह है कि एक आवेदन है जिसे स्पष्ट रूप से अजगर 3.7 की आवश्यकता होती है, उसी तरह, मुझे ऐसे किसी भी आवेदन की जानकारी नहीं है जो केवल पायथन 3.6 के साथ काम करता है। दूसरे शब्दों में। आप ठीक हो जाएंगे :)
ePi272314

2
मैंने 3.7 को स्थापित किया है और इस त्रुटि को प्राप्त किया है: Error: python 3.7.0 is already installed To install 3.6.5_1, first run 'शॉर्ट आंसर' का उपयोग करते समय काढ़ा पिंथोन `को अनलिंक करें।
वूलिवोंग

2
3.6.5 के लिए प्रत्यक्ष प्रतिबद्ध लिंक प्रदान करने के लिए धन्यवाद। आपने मुझे एक निराशाजनक स्थिति से बचाया।
tsalaroth

4
मुझे पता है कि यह थोड़ा पुराना है, लेकिन मैं यह जानने की कोशिश कर रहा हूं कि आपको सूत्र का लिंक कैसे मिला। 3.6 का वर्तमान संस्करण 3.6.7 है, क्या इस सूत्र को खोजने के लिए कुछ सरल दृष्टिकोण है?
डिएक

32

अद्यतन के रूप में, जब कर रहा हो

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

आपका सामना हो सकता है

Error: python contains a recursive dependency on itself:
  python depends on sphinx-doc
  sphinx-doc depends on python

इसे बायपास करने के लिए, --ignore-dependenciesकाढ़ा स्थापित करने के लिए तर्क जोड़ें ।

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

1
और फिर आप निर्भरता नरक के साथ एक बुरा सपना ... की तरह होगा discourse.brew.sh/t/brew-install-python3-fails/1756/7
confiq

4
यह मेरे लिए पहले काम नहीं करता था; अनिवार्य रूप से ऐसा करना था: काढ़ा बनाना --debug --ignore- निर्भरता raw.githubusercontent.com/Homebrew/homebrew-core/… और एक बार जब यह html बनाने में विफल रहता है, तो बस 2 का चयन करके त्रुटि को अनदेखा करें)। html / डॉक्स विफलता शायद बाद में मुझे काट लेगी, लेकिन अब यह ठीक काम कर रहा है: श्रग:
सेम

20

मैंने जो किया वह पहले मैंने अजगर 3.7 स्थापित किया था

brew install python3
brew unlink python

फिर मैंने ऊपर दिए गए लिंक का उपयोग करके अजगर 3.6.5 स्थापित किया

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

उसके बाद मैं भागा brew link --overwrite python। अब आभासी वातावरण बनाने के लिए मेरे पास सिस्टम में सभी अजगर हैं।

mian@tdowrick2~ $ python --version
Python 2.7.10
mian@tdowrick2~ $ python3.7 --version
Python 3.7.1
mian@tdowrick2~ $ python3.6 --version
Python 3.6.5

पायथॉन 3.7 वर्चुअल वातावरण बनाने के लिए।

mian@tdowrick2~ $ virtualenv -p python3.7 env
Already using interpreter /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.7'
New python executable in /Users/mian/env/bin/python3.7
Also creating executable in /Users/mian/env/bin/python
Installing setuptools, pip, wheel...
done.
mian@tdowrick2~ $ source env/bin/activate
(env) mian@tdowrick2~ $ python --version
Python 3.7.1
(env) mian@tdowrick2~ $ deactivate

पायथन 3.6 आभासी वातावरण बनाने के लिए

mian@tdowrick2~ $ virtualenv -p python3.6 env
Running virtualenv with interpreter /usr/local/bin/python3.6
Using base prefix '/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6'
New python executable in /Users/mian/env/bin/python3.6
Not overwriting existing python script /Users/mian/env/bin/python (you must use /Users/mian/env/bin/python3.6)
Installing setuptools, pip, wheel...
done.
mian@tdowrick2~ $ source env/bin/activate
(env) mian@tdowrick2~ $ python --version
Python 3.6.5
(env) mian@tdowrick2~ $ 

1
जबकि ऐसा लगता है कि यह बहुत अच्छा होगा, यह अब काम नहीं करता है, परिणाम है:python -V && python3.7 -V && python3 -V && python3.6 -V Python 2.7.15 Python 3.7.3 Python 3.7.3 zsh: command not found: python3.6
वेफर

1
बारीकी से मेरे जवाब को देखें, 3.6 के लिए आपको python3.6 -V लिखना होगा। आपने python3 -Vदो बार ऐसा किया है कि आप दो बार क्यों 3.7.3गायब हैं और गायब हैं3.6
मियां अस्बत अहमद

1
मेरे लिए, यह खाल python3.6के नीचे /usr/local/Cellar/python/3.6.5_1/bin। एक बार जब मैंने एक लिंक बनाया, तो यह आपके कहे अनुसार काम करता है। यह अजगर स्व प्रबंधन प्रणाली ब्राउनियन गति द्वारा कोडिंग के एक लाख प्रोग्रामर के एक क्यूब गोल्डबर्ग फ्रैक्टल के रूप में प्रतीत होता है।
एरिक लेसचिंस्की

11

मैंने पायथन 3.4.4 को स्थापित करने के लिए उपरोक्त सभी उत्तरों की कोशिश की। अजगर की स्थापना ने काम किया, लेकिन पीआईपी स्थापित नहीं किया जाएगा और कुछ भी नहीं जो मैं इसे काम करने के लिए नहीं कर सका। मैं मैक OSX Mojave का उपयोग कर रहा था, जो zlib, opsl के साथ कुछ मुद्दों का कारण बनता है।

क्या नहीं कर सकते है:

  • सूत्र द्वारा दिए गए पिछले संस्करण के लिए Homebrew का उपयोग कर से बचने के लिए प्रयास करें अजगर या python3
  • अजगर को संकलित करने की कोशिश न करें

उपाय:

  1. डाउनलोड MacOS 64-बिट संस्थापक या MacOS 64-बिट / 32-बिट संस्थापक : https://www.python.org/downloads/release/python-365/
  2. पिछले चरण में, यह Python 3.6.5 को डाउनलोड करेगा , यदि आप उदाहरण के लिए, Python 3.4.4 को डाउनलोड करना चाहते हैं, तो python-365 के ऊपर url में python-344 द्वारा प्रतिस्थापित करें
  3. जिस फाइल पर आपने GUI इंस्टॉलर डाउनलोड किया है, उस पर क्लिक करें
  4. यदि आपने python-365 को डाउनलोड किया है , तो संस्थापन के बाद, अजगर के इस संस्करण को लॉन्च करने के लिए, आप अपने टर्मिनल python365 में टाइप करेंगे , वही पाइप के लिए, यह pip365 होगा

ps: आपको अपने सिस्टम पर अपने अन्य संस्करण Python की स्थापना रद्द करने की आवश्यकता नहीं है।


संपादित करें:


मुझे बहुत बेहतर समाधान मिला जो MacOSX, विंडोज, लिनक्स आदि पर काम करता है।

  1. इससे कोई फर्क नहीं पड़ता कि आपने पहले से ही अजगर स्थापित किया है या नहीं।
  2. एनाकोंडा डाउनलोड करें
  3. एक बार स्थापित होने के बाद, टर्मिनल प्रकार में: conda init
  4. टर्मिनल में, किसी भी अजगर संस्करण के साथ आभासी वातावरण बनाएं , उदाहरण के लिए, मैंने 3.4.4 चुना है:conda create -n [NameOfYour VirtualEnvironment] python=3.4.4
  5. फिर, टर्मिनल में, आप कमांड के साथ बनाए गए सभी आभासी वातावरण की जांच कर सकते हैं: conda info --envs
  6. फिर, टर्मिनल में, अपनी पसंद के आभासी वातावरण को सक्रिय करें: conda activate [The name of your virtual environment that was shown with the command at step 5]

9

मैंने सब कुछ करने की कोशिश की है लेकिन यह काम नहीं कर सका। अंत में मैंने उपयोग किया है pyenvऔर यह सीधे आकर्षण की तरह काम करता है।

तो homebrewस्थापित होने , juste करते हैं:

brew install pyenv
pyenv install 3.6.5

virtualenvs को प्रबंधित करने के लिए:

brew install pyenv-virtualenv
pyenv virtualenv 3.6.5 env_name

अधिक जानकारी के लिए pyenv और pyenv-virtualenv देखें ।

EDIT (2019/03/19)

मैंने pyenv- pyenv-virtualenv direclty को स्थापित करने के लिए होमब्रे से आसान pyenv-इंस्टॉलर का उपयोग किया है:

curl https://pyenv.run | bash

अजगर संस्करण का प्रबंधन करने के लिए, या तो विश्व स्तर पर:

pyenv global 3.6.5

या स्थानीय रूप से दी गई निर्देशिका में:

pyenv local 3.6.5

यह वास्तव में सीधे सवाल का जवाब नहीं दे रहा है, बल्कि एक virtualenvदृष्टिकोण से इसे दरकिनार कर रहा है ।
जावदबा

1
वास्तव में वर्चुअन आवश्यक नहीं है। pyenvआप बिना शिरा के उपयोग की आवश्यकता के बिना अजगर संस्करणों का प्रबंधन कर सकते हैं
क्लेमेंटवैल्टर

6

मामले में किसी को भी नीचे की तरह पाइप मुद्दे का सामना करना पड़ता है

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

मूल कारण खुलता है 1.1 1.1 अजगर 3.6 का समर्थन नहीं करता है। इसलिए आपको पुराने संस्करण को 1.0sl इंस्टॉल करने की आवश्यकता है

यहाँ समाधान है:

brew uninstall --ignore-dependencies openssl
brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

1

इसे हल करने के लिए homebrew, आप अस्थायी रूप से बैकडेट कर सकते हैं homebrew-coreऔर HOMEBREW_NO_AUTO_UPDATEइसे जगह पर रखने के लिए चर सेट कर सकते हैं :

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

मैं होमब्रे-कोर को स्थायी रूप से बैकडेट करने की अनुशंसा नहीं करता, क्योंकि आप सुरक्षा पैच पर याद करेंगे, लेकिन यह परीक्षण के प्रयोजनों के लिए उपयोगी है।

आप brew extractकमांड का उपयोग करके होमब्रेव फॉर्मूले के पुराने संस्करणों को अपने ही टैप (tap_owner / tap_name) में निकाल सकते हैं :

brew extract python tap_owner/tap_name --version=3.6.5

0

मेरे लिए सबसे आसान तरीका एनाकोंडा स्थापित करना था: https://docs.anaconda.com/anaconda/install/

वहाँ मैं अलग-अलग पायथन संस्करणों के साथ कई वातावरण बना सकता हूं जैसा कि मैं चाहता हूं और माउस क्लिक के साथ उनके बीच स्विच करता हूं। यह आसान नहीं हो सकता।

विभिन्न पायथन संस्करणों को स्थापित करने के लिए बस इन निर्देशों का पालन करें https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-python.html

एक अलग पायथन संस्करण के साथ एक नया विकास वातावरण 2 मिनट के भीतर किया गया था। और भविष्य में मैं आसानी से आगे और पीछे स्विच कर सकता हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.