web-dev-qa-db-fra.com

Basculez entre python 2.7 et python 3.5 sous Mac OS X

J'utilise généralement Python 2.7 mais Python 3.5 récemment installé à l'aide de Miniconda sur Mac OS X. Différentes bibliothèques ont été installées pour ces deux versions de python. Désormais, la saisie de l'un des mots clés "python" ou "python3" dans le terminal appelle python 3.5, et "python2" renvoie "-bash: python2: commande introuvable". Comment puis-je maintenant les invoquer spécifiquement en utilisant les alias 'python2' et 'python3' respectivement?

J'utilise actuellement OS X El Capitan.

38
Viswanath

IMHO, le meilleur moyen d'utiliser deux versions différentes de Python sur macOS est d'utiliser homebrew. Après avoir installé homebrew sous macOS, exécutez les commandes ci-dessous sur votre terminal.

brew install python@2
brew install python

Vous pouvez maintenant exécuter Python 2.7 en appelant python2 ou Python 3 en appelant python3. De plus, vous pouvez utiliser virtualenv ou pyenv pour gérer différentes versions des environnements python.

Je n'ai jamais personnellement utilisé miniconda , mais d'après la documentation, , cela ressemble à l'utilisation de pip et virtualenv en combinaison.

63
forevergenin

Le binaire Python d’OSX (version 2) est situé à /usr/bin/python

si vous utilisez which python, il vous indiquera où la résolution de la commande python est en cours. Généralement, les tierces parties redéfinissent les éléments dans /usr/local/bin (qui a priorité par défaut sur /usr/bin). Pour résoudre ce problème, vous pouvez exécuter directement /usr/bin/python pour utiliser 2.x ou rechercher la redéfinition erronée (probablement dans /usr/local/bin ou ailleurs dans votre PATH).

10
John Wilkey

J'avais déjà installé python3 (via miniconda3) et devais installer python2 à côté, dans ce cas, brew install python n'installe pas python2, vous aurez donc besoin de brew install python@2.

Maintenant, alias python2 fait référence à python2.x à partir de /usr/bin/python

et alias python3 fait référence à python3.x à partir de /Users/ishandutta2007/miniconda3/bin/python

et alias python fait référence à python3 par défaut.

Maintenant, pour utiliser python comme alias pour python2, j'ai ajouté ce qui suit au fichier .bashrc 

alias python='/usr/bin/python'

Pour revenir à python3 par défaut, supprimez cette ligne si nécessaire.

4
ishandutta2007

Comment redéfinir la version python sur 2.7 si vous avez installé Anaconda3 (Python 3.6) sur MacOS High Sierra 10.13.5

Editez le fichier .bash_profile dans votre répertoire personnel.

vi $ HOME/.bash_profile

hash la ligne # export PATH = "/ Users/YOURUSERNAME/anaconda3/bin: $ PATH"

Fermez à nouveau le shell, vous devriez voir 2.7 lorsque vous exécutez python.

Ensuite, si vous voulez la version 3.6, vous pouvez simplement supprimer le commentaire de votre ligne anaconda3 dans votre profil bash.

Essayer de dissocier python se terminera en larmes sous Mac OSX.

Vous voulez quelque chose comme ça

unlink:/usr/bin/python: opération non autorisée.

J'espère que ça aide quelqu'un !! :) :)

2
Jace

Semblable à la réponse de John Wilkey, je lancerais python2 en recherchant which python, comme si l’on utilisait /usr/bin/python, puis en créant un alias dans .bash_profile:

alias python2="/usr/bin/python"

Je peux maintenant exécuter python3 en appelant python et python2 en appelant python2.

2
E.Hazledine

Je ne fais que suivre la réponse de John Wilkey.

Mon alias python représentait python2.7 (situé dans /usr/bin) . Cependant, le chemin par défaut python_path est maintenant précédé de /usr/local/bin pour python3; par conséquent, en tapant python, je n’ai pas non plus reçu la version python.

J'ai essayé de créer un lien dans /usr/local/bin pour python2:

ln -s /usr/bin/python /usr/local/bin/

Cela fonctionne lorsque vous appelez python pour python2

1
Chinh Sutran