Python >> Tutoriel Python >  >> Python

Apple - Homebrew :Rollback de Python 3.7 vers Python 3.6.5.x ?

Si vous avez toujours les versions précédentes disponibles, vous pouvez simplement utiliser

brew switch python 3.6.5_1

Si vous n'avez pas de version précédente vers laquelle basculer, vous pouvez installer Python 3.6.5_1 de la formule précédente de cette façon :

$ brew unlink python

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

Si vous obtenez :

# --ignore-depeError: python contains a recursive dependency on itself:
  python depends on sphinx-doc
  sphinx-doc depends on python

...puis lancez :

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

...au lieu de la dernière commande.

Si alors vous obtiendrez l'erreur suivante lorsque vous ferez pip3 install après une telle installation :

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

... alors une solution de contournement peut être d'installer d'abord ses dépendances (tout sauf sphinx-doc )

$ brew install pkg-config gdbm openssl readline sqlite xz

Notez qu'il a besoin de openssl et PAS [email protected] qui est une dernière dépendance de l'homebrew python 3.7.*.


Deux options

Pour récupérer une version Python précédemment installée :

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

Utilisez brew info python pour voir ce que vous avez installé précédemment

Pour effectuer une nouvelle installation de Python 3.6.5, utilisez :

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

Réponse longue

Il existe deux formules pour installer Python avec Homebrew :[email protected] et python .
Le premier est pour Python 2 et le second pour Python 3.

Remarque : Vous pouvez trouver des réponses obsolètes sur le Web où il est mentionné python3 comme nom de formule pour installer Python version 3. Maintenant, c'est juste python !

Par défaut, avec ces formules, vous pouvez installer la dernière version de la version majeure correspondante de Python. Vous ne pouvez donc pas installer directement une version mineure comme la 3.6.

Solution :

Avec brew , vous pouvez installer un package en utilisant 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 spécifiquement pour Python 3

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

L'adresse que vous devez spécifier est l'adresse du dernier commit de la formule (python.rb) pour la version souhaitée. Vous pouvez trouver l'identifiant de commint en consultant l'historique de homebrew-core/Formula/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 de formule pour une version de Python supérieure à 3.6.5. Après que les responsables de ce référentiel (officiel) ont publié Python 3.7, ils ne soumettent que des mises à jour à la recette de Python 3.7.

Comme expliqué ci-dessus, avec homebrew vous n'avez que Python 2 ([email protected]) et Python 3 (python), il n'y a pas de formule explicite pour Python 3.6 .

Bien que ces mises à jour mineures soient pour la plupart non pertinentes dans la plupart des cas et pour la plupart des utilisateurs, je chercherai si quelqu'un a fait une formule explicite pour 3.6.