web-dev-qa-db-fra.com

MacOS: Comment déclasser Python homebrew?

J'utilise MacOS Sierra 10.12.4 et j'ai compris que l'homebrew python avait été mis à niveau vers la version 2.7.13. Comment puis-je revenir à la version 2.7.10?

11
leota

Premièrement, il est généralement considéré comme une mauvaise pratique de s’appuyer sur python système pour le code foncier de l’utilisateur si vous pouvez l’éviter. Vous devez supposer que les utilitaires système nécessitent une version spécifique de python système et que votre code pays utilisateur peut alors être verrouillé pour toujours à cette version python, ce qui n’est pas judicieux.

Deuxièmement, je ne comprends pas pourquoi vous avez besoin de 2.7.10 au lieu de 2.7.13. Tous les pythons avec le même numéro de révision mineure (2.7) devraient toujours être compatibles . Si vous aviez besoin de la version 2.6, ce serait une autre histoire puisqu'il s'agit d'un changement de version mineure. Le code écrit pour 2.7.x devrait être compatible.

Cependant, en supposant que votre cas d'utilisation nécessite réellement l'utilisation d'une version spécifique de Python, pour arriver à une solution, assurez-vous d'abord que vous avez réellement mis à niveau le système python. Si vous entrez la commande: which python, obtenez-vous /usr/bin/python (système) ou /usr/local/bin/python (python installé par l'utilisateur). Par exemple, /usr/bin/python -V me donne 2.7.10 même si python -V me donne 2.7.13 (via brew).

Il est possible que vous ayez installé la dernière version 2.7.x de python via brew qui place /usr/local/bin/python en tant que lien symbolique dans votre $PATH, ou vous avez peut-être un alias python qui pointe quelque part que vous ne voulez pas. Vérifiez votre commande $ PATH.

Vous pouvez réinitialiser votre python homebrew en le supprimant (brew uninstall python) ou en modifiant le lien symbolique (ln -s -f /usr/bin/python /usr/local/bin/python). Cependant, l'utilisation de virtualenv supprime le besoin d'une grande partie de ces types de gymnastique.

Si vous souhaitez utiliser des versions antérieures de Python installées via homebrew, cette réponse devrait vous aider: Comment installer une formule plus ancienne avec Brew?

Une dernière option: si vous devez absolument avoir une version spécifique de python, pyenv peut vous aider.

brew install pyenv
pyenv install 2.7.10
pyenv global 2.7.10
6
mattmc3

Vous pouvez changer de version avec brew switch. Par exemple, je viens de rétrograder Python 3.7.0 à 3.6.5 comme ceci:

brew switch python 3.6.5

Malheureusement, la commande brew versions est obsolète et elle est actuellement assez compliquée pour localiser les versions disponibles _. J'aimerais entendre une solution simple à cela. En attendant, si vous connaissez la version vers laquelle vous souhaitez passer, essayez la commande ci-dessus.

Je suis d’accord avec les réponses que les virtualenvs sont une bonne idée, mais avoir la version de Python dont vous avez besoin dans l’homebrew est aussi une bonne idée. La façon dont mes virtualenvs ont été créés, bin/python était un lien symbolique vers /usr/local/bin/python, ainsi les choses se sont brisées lorsque Python a été mis à jour via homebrew.

23
Joseph Sheedy

Téléchargez python 3.6.0 sur https://www.python.org/downloads/release/python-360/

Installez-le comme un paquet normal.

Exécuter cd /Library/Frameworks/Python.framework/Version

Exécutez ls et toutes les versions de Python installées seront visibles ici. 

Exécuter Sudo rm -rf 3.7

Vérifiez la version maintenant par python3 -V et ce sera la version 3.6 maintenant.

0
Sidharth Taneja