Comment puis-je utiliser Homebrew pour installer Python 2 et 3 sur Mac?
146
J'ai besoin de pouvoir basculer entre Python 2 et 3. Comment faire cela en utilisant Homebrew car je ne veux pas jouer avec le chemin et avoir des ennuis. En ce moment, j'ai 2.7 installé via Homebrew.
Vous voudrez peut-être changer la question pour supprimer la référence homebrew car ce n'est pas nécessairement une exigence pour atteindre votre objectif (voir ma réponse ci-dessous par exemple stackoverflow.com/a/49091638/2923369 )
Pour activer pyenv dans votre shell Bash, vous devez exécuter:
$ eval "$(pyenv init -)"
Pour faire cela automatiquement pour Bash au démarrage, ajoutez cette ligne à votre fichier ~/.bash_profile. 1
Usage:
Une fois que vous avez installé pyenv et activé, vous pouvez installer différentes versions de python et choisir celle que vous pouvez utiliser. Exemple:
$ pyenv install 2.7.5
Vous pouvez vérifier les versions que vous avez installées avec:
$ pyenv versions
Et vous pouvez basculer entre les versions de python avec la commande:
$ pyenv global3.3.1
Vous pouvez également définir une version python pour le répertoire actuel avec:
$ pyenv local 3.5.2
Vous pouvez vérifier en exécutant python --version:
$ python --version
Python3.5.2
1 Homebrew vous demandait de le faire lors de l'installation de pyenv, mais le message a été supprimé . Pour Zsh et d'autres coquilles, les étapes précises peuvent être différentes.
C'est la solution la plus simple. J'utilise actuellement ceci pour basculer entre Python 3 et 2.7.x
Naz Mir
3
Si j'ai déjà installé python 2.7 via homebrew , y a-t-il quelque chose dont je devrais m'occuper en utilisant pyenv ? Puis-je installer un autre python 2.7 via pyenv ?
Drake Guan
3
Oui, vous pouvez installer un autre python 2.7 via pyenv. Il installera ce python dans $ PYENV_ROOT / versions. L'autre python 2.7 installé via homebrew peut apparaître comme "système" lorsque vous exécutez "pyenv versions".
moliware
5
J'ai dû ajouter eval "$(pyenv init -)"à mon .profile / .zshrc pour que pyenv fonctionne.
Vous pouvez installer les deux versions en même temps.
Pour Homebrew> = 1.5.0:
Depuis le 1er mars 2018, la pythonformule sera mise à niveau vers Python 3.x, tandis qu'une nouvelle python@2formule sera ajoutée pour Python 2.7, en particulier.
Maintenant, vous aurez les deux versions installées sur votre machine. Lorsque vous souhaitez utiliser la version 2, utilisez l' pythonexécutable. Lorsque vous souhaitez utiliser la version 3, utilisez l' python3exécutable.
Merci pour la mise à jour! J'ai suivi un itinéraire similaire mais j'ai eu des problèmes de devoir régler PYTHONPATHà chaque changement ... une idée? à part ça, pyenvc'est génial.
meduz
9
Notez également qu'en ayant python2 et python3 côte à côte, ce python pointe vers python2 et python3 pointe vers python3 comme prévu. Cependant, un gros problème est que pip ne pointe pas vers pip2 comme on pourrait s'y attendre. Il pointe en fait vers pip3 (comme le fait évidemment pip3). Pour utiliser pip2, utilisez explicitement pip2. Un peu incohérent d'avoir le suffixe non numérique pour python pointant sur 2 mais le suffixe non numérique pour pip pointe vers 3.
JD
5
Cela gâche les exécutables courants comme pip. python3 écrasera python2 pip dans ce cas et ce sera la commande par défaut "pip"
kissgyorgy
1
En réponse au commentaire de @ kissgyorgy: j'ai eu ce problème, le dernier commentaire sur ce problème l'a résolu pour moi github.com/Homebrew/legacy-homebrew/issues/50607 , courant python3 -m pip install -U --force-reinstall pippuis python -m pip install -U --force-reinstall pipremis les choses à se pipréférer à Python 2 pip.
Harry
11
Actuellement, Homebrew fournit deux formules différentes pour Python 2 et 3. brew install pythoninstalle python3 et brew install python@2installe python2. Plus de détails dans la documentation Homebrew:
Alternativement, vous pouvez probablement simplement entrer «python3» pour exécuter votre version la plus récente de python3.x et «python» ou «python2» pour exécuter la dernière version 2.x installée.
Il existe des moyens d'utiliser les deux, mais la solution la plus simple aujourd'hui est d'utiliser pyenv . pyenv permet de basculer facilement entre les versions. Voici ce que j'ai fait pour mettre en place:
Il était une fois un langage de programmation
Il y avait de nombreuses versions de celui-ci
Donc les gens ont écrit un gestionnaire de version pour cela
Pour basculer entre les versions pour les projets
Différents, anciens, nouveaux.
Puis il y a eu plus de langages de programmation
Donc il y a eu plus de gestionnaires de versions
Et de nombreuses commandes pour eux
J'en ai installé beaucoup
j'ai appris beaucoup de commandes
Puis j'ai dit, juste un gestionnaire de version de plus
que j'écrirai à la place
Un gestionnaire de versions si extensible
pour lequel n'importe qui peut créer un plugin
Pour prendre en charge sa langue préférée
Plus besoin d'installer plus de gestionnaires de versions
Ou d'apprendre plus de commandes
Il me semble que ce ne sont pas des outils concurrents mais le même outil, implémenté une fois (et parfois plus d'une fois) par langue. Un peu comme pourquoi nous avons besoin de quelque chose comme le LSP aussi, à mon humble avis. microsoft.github.io/language-server-protocol/overview
Matt Schlobohm
1
Je pensais avoir la même exigence - passer d'une version à l'autre de Python - mais j'ai réalisé tout ce dont j'avais besoin avec seulement Python3.6 en construisant à partir des sources au lieu d'utiliser homebrew.
git clone https://git.<theThingYouWantToInstall>
En fonction du dépôt, vérifiez s'il existe un fichier MAKE déjà configuré pour cette option.
J'ai pu simplement aller sur https://www.python.org/downloads/mac-osx/ et télécharger le dernier python. Il s'est installé aux côtés de python actuel dans mon système.
Réponses:
J'utiliserais pyenv Vous pouvez l'installer:
Pour activer pyenv dans votre shell Bash, vous devez exécuter:
Pour faire cela automatiquement pour Bash au démarrage, ajoutez cette ligne à votre fichier
~/.bash_profile
. 1Usage:
Une fois que vous avez installé pyenv et activé, vous pouvez installer différentes versions de python et choisir celle que vous pouvez utiliser. Exemple:
Vous pouvez vérifier les versions que vous avez installées avec:
Et vous pouvez basculer entre les versions de python avec la commande:
Vous pouvez également définir une version python pour le répertoire actuel avec:
Vous pouvez vérifier en exécutant
python --version
:1 Homebrew vous demandait de le faire lors de l'installation de pyenv, mais le message a été supprimé . Pour Zsh et d'autres coquilles, les étapes précises peuvent être différentes.
la source
eval "$(pyenv init -)"
à mon .profile / .zshrc pour que pyenv fonctionne.eval "$(pyenv init -)"
à votre ~ / .bash_profileVous pouvez installer les deux versions en même temps.
Pour Homebrew> = 1.5.0:
Depuis le 1er mars 2018, la
python
formule sera mise à niveau vers Python 3.x, tandis qu'une nouvellepython@2
formule sera ajoutée pour Python 2.7, en particulier.Voir l' annonce des modifications ici ou le document final sur l'utilisation de Homebrew pour Python ici .
Pour les Homebrew plus anciens:
Pour Python 2.x:
Pour Python 3.x:
Maintenant, vous aurez les deux versions installées sur votre machine. Lorsque vous souhaitez utiliser la version 2, utilisez l'
python
exécutable. Lorsque vous souhaitez utiliser la version 3, utilisez l'python3
exécutable.la source
PYTHONPATH
à chaque changement ... une idée? à part ça,pyenv
c'est génial.python3 -m pip install -U --force-reinstall pip
puispython -m pip install -U --force-reinstall pip
remis les choses à sepip
référer à Python 2pip
.Actuellement, Homebrew fournit deux formules différentes pour Python 2 et 3.
brew install python
installe python3 etbrew install python@2
installe python2. Plus de détails dans la documentation Homebrew:https://docs.brew.sh/Homebrew-and-Python
Si vous avez actuellement installé 2.x via Homebrew, Homebrew vous donnera un message tel que:
Si vous exécutez:
vous devriez pouvoir faire:
et
Pour voir quelles versions de Python 2.x et 3.x sont installées.
la source
Alternativement, vous pouvez probablement simplement entrer «python3» pour exécuter votre version la plus récente de python3.x et «python» ou «python2» pour exécuter la dernière version 2.x installée.
la source
Il existe des moyens d'utiliser les deux, mais la solution la plus simple aujourd'hui est d'utiliser pyenv . pyenv permet de basculer facilement entre les versions. Voici ce que j'ai fait pour mettre en place:
ÉTAPE 1:
Supprimer tous les pythons de votre Mac
Supprimez les éléments suivants de
~/.bash_profile
et aussi ce qui suit de
~/.bashrc
ÉTAPE 2 :
Installez pyenv et les versions de python dont vous avez besoin
ÉTAPE 3 :
ajouter
pyenv init
àbash_profile
oubashrc
ÉTAPE 4 :
Vérifiez ce qui a été installé
ÉTAPE 5:
Choisissez une valeur par défaut
Lorsqu'un projet a besoin d'une version plus ancienne, accédez simplement à son dossier racine et exécutez
la source
Utilisez asdf !
https://github.com/asdf-vm/asdf
https://github.com/tuvistavie/asdf-python
https://github.com/asdf-vm/asdf-plugins
la source
Je pensais avoir la même exigence - passer d'une version à l'autre de Python - mais j'ai réalisé tout ce dont j'avais besoin avec seulement Python3.6 en construisant à partir des sources au lieu d'utiliser
homebrew
.git clone https://git.<theThingYouWantToInstall>
En fonction du dépôt, vérifiez s'il existe un fichier MAKE déjà configuré pour cette option.
la source
J'ai pu simplement aller sur https://www.python.org/downloads/mac-osx/ et télécharger le dernier python. Il s'est installé aux côtés de python actuel dans mon système.
la source
D'accord, j'avais du mal avec mon installation de brassage de Python3, car je n'avais pas pip3
et ainsi j'ai fait
et installé le Python 3.6.2 régulier de la distribution officielle, puis j'ai eu pip3 et tous les composants étaient ok.
la source