163 votes

Comment puis-je installer une version précédente de Python 3 dans macOS en utilisant homebrew?

Comment puis-je installer une version précédente de Python 3 dans macOS à l'aide de brew?

Avec la commande brew install python j'ai obtenu la dernière version de Python 3 (actuellement v3.7.0), mais je veux la dernière version de Python 3.6 (actuellement 3.6.5).

J'ai lu un autre package pyenv qui peut aider à gérer différentes installations de python, mais cette solution ne me convient pas.

269voto

ePi272314 Points 4098

Réponse Courte

Pour faire une installation propre de Python 3.6.5 utilisation:

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

Si vous préférez récupérer une version précédemment installée, puis:

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

Réponse Longue

Il existe deux formules pour l'installation de Python avec Homebrew: python@2 et python.
La première est pour Python 2 et la deuxième pour Python 3.

Remarque: Vous pouvez trouver obsolète réponses sur le web où il est mentionné python3 comme le nom de formule pour l'installation d'une version de Python 3. Maintenant, il suffit d' python!

Par défaut, avec ces formules, vous pouvez installer la dernière version correspondant à la version de Python. Donc, vous ne pouvez pas directement installer une version mineure comme 3.6.

Solution

Avec brew, vous pouvez installer un package à l'aide de l'adresse de la formule, par exemple dans un dépôt git.

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

Ou, plus spécifiquement, pour Python 3

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

L'adresse vous devez spécifier l'adresse de la dernière validation de la formule (python.rb) pour la version souhaitée. Vous pouvez trouver la commint identifiant en regardant l'histoire pour les homebrew-core/Formule/python.rb

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

Python > 3.6.5

Dans le lien ci-dessus, vous ne trouverez pas une formule pour une version de Python ci-dessus 3.6.5. Après les responsables de l' (officiel) référentiel publié Python 3.7, ils ne soumettre que des mises à jour pour la recette de Python 3.7.

Comme expliqué ci-dessus, avec homebrew vous n'avez que Python 2 (python@2 et Python 3 (python), il n'existe pas de formule explicite pour Python 3.6.

Bien que ces mises à jour mineures sont la plupart du temps inutiles dans la plupart des cas et pour la plupart des utilisateurs, je vais chercher si quelqu'un a fait une formule explicite pour la 3.6.

32voto

amiabl Points 647

En tant que mise à jour, lorsque vous faites

 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
 

Vous pouvez rencontrer

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

Pour le contourner, ajoutez l'argument --ignore-dependencies à l'installation de l'infusion.

 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
 

30voto

Asbat Points 329

Ce que j'ai fait, c'est d'abord que j'ai installé python 3.7

 brew install python3
brew unlink python
 

puis j'ai installé python 3.6.5 en utilisant le lien ci-dessus

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

Après cela, j'ai couru brew link --overwrite python . Maintenant, j'ai tous les pythons dans le système pour créer les environnements virtuels.

 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
 

Pour créer un environnement virtuel Python 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
 

Pour créer un environnement virtuel Python 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~ $ 
 

15voto

vincedjango Points 184

J'ai essayé toutes les réponses ci-dessus pour installer Python 3.4.4. L'installation de python travaillé, mais PIP ne serait pas installé et je ne peux rien faire pour le faire fonctionner. J'ai été en utilisant Mac OSX Mojave, ce qui cause quelques problèmes avec zlib, openssl.

Quoi ne pas faire:

  • Essayez d'éviter d'utiliser Homebrew pour la précédente version donnée par la formule Python ou Python3.
  • Ne pas essayer de compiler Python

Solution:

  1. Télécharger le macOS 64-bit installer ou macOS 64-bit/32-bit installer: https://www.python.org/downloads/release/python-365/
  2. Dans l'étape précédente, il va télécharger Python 3.6.5, si par exemple vous voulez télécharger Python 3.4.4, remplacer dans l'url ci-dessus python-365 par python-344
  3. Télécharger cliquez sur le fichier que vous avez téléchargé une interface graphique d'installation va s'ouvrir
  4. Si vous avez téléchargé python-365, après l'installation, pour le lancement de cette version de python, vous tapez dans votre terminal python365, même chose pour le pep, il sera pip365

p.s: Vous n'avez pas à désinstaller votre autre version de Python sur votre système.


Edit:


J'ai trouvé une bien meilleure solution que de travailler sur MacOSX, Windows, Linux, etc.

  1. Il n'a pas d'importance si vous avez déjà installé python ou pas.
  2. Télécharger Anaconda
  3. Une fois installé, dans le terminal, tapez: conda init
  4. Dans le terminal,de créer des environnements virtuels avec toute version de python, par exemple, j'ai choisi 3.4.4: conda create -n [NameOfYour VirtualEnvironment] python=3.4.4
  5. Puis, dans un terminal, vous pouvez vérifier tous les environnement virtuel, vous n'ont créés avec la commande: conda info --envs
  6. Puis, dans un terminal, activez l'environnement virtuel de votre choix avec: conda activate [The name of your virtual environment that was shown with the command at step 5]

0voto

Steven Peters Points 101

Pour résoudre ce avec homebrew, vous pouvez temporairement antidater homebrew-core et définir l' HOMEBREW_NO_AUTO_UPDATE variable pour le maintenir en place:

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

Je ne recommande pas de façon permanente l'antidatage homebrew-core, que vous manquez de correctifs de sécurité, mais il est utile pour des fins de test.

Vous pouvez aussi extraire les anciennes versions de homebrew formules dans votre propre appuyez sur (tap_owner/tap_name) à l'aide de l' brew extract commande:

brew extract python tap_owner/tap_name --version=3.6.5

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X