web-dev-qa-db-fra.com

Comment utiliser Python installé par Brew en tant que Python par défaut?

J'essaie de passer à Homebrew (après avoir utilisé fink et macport) sous Mac OS X 10.6.2. J'ai installé Python 2.7 avec 

brew install python 

Le problème est que, contrairement à Macport, il semble qu’il n’y ait pas d’utilitaire python_select, et mon mac python par défaut est toujours default

which python

donnez-moi 

/usr/bin/python

et /usr/bin/python n'est pas un lien symbolique

Comment puis-je faire pour que la saveur d'infusion de python soit mon python par défaut?

152
sam

Comme vous utilisez Homebrew, la commande suivante donne une meilleure image:

brew doctor

Sortie:

==>/usr/bin apparaît avant/usr/local/bin Cela signifie que les programmes fournis par le système seront utilisés à la place de ceux fournis par Homebrew. Ceci est un problème si vous par exemple. brassée installé Python.

Pensez à éditer votre fichier .bash_profile pour mettre:/usr/local/bin devant /usr/bin dans votre $ PATH.

104
Vishal

Voir: Comment faire un lien symbolique python dans Homebrew?

$ brew link --overwrite python
Linking /usr/local/Cellar/python/2.7.3... 28 symlinks created
$ which python
/usr/local/bin/python
78
akauppi

Solution rapide:

  1. Ouvrez /etc/paths
  2. Changer l'ordre des lignes (la plus haute priorité en haut)

Dans mon cas, /etc/paths ressemble à:

/usr/local/bin
/usr/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin

Si vous voulez en savoir plus sur les chemins dans OSX, j'ai trouvé cet article plutôt utile:

http://muttsnutts.github.com/blog/2011/09/12/manage-path-on-mac-os-x-lion/

59
Bijan

J'ai fait "brasser installer python" pour OSX High Sierra. Le $PATH avait /usr/local/bin avant tout autre chemin, mais which python pointait vers le python du système. 

Quand j'ai regardé plus profondément, j'ai constaté qu'il n'y a pas d'exécutable en python à /usr/local/bin. L'exécutable s'appelle python2. Pour résoudre ce problème, créez un lien symbolique python pointant vers python2:

/usr/local/bin $: ln -s python2 python

33
Sachin Khot

Comme suggéré par l'installateur homebrew lui-même, assurez-vous de l'ajouter à votre .bashrc ou .zshrc:

export PATH="/usr/local/opt/python/libexec/bin:$PATH"
27
Pamput

Homebrew ne remplace PAS des éléments de "/ usr/bin". Vous voudrez simplement mettre "/ usr/local/bin" avant "/ usr/bin" dans votre chemin, puis "quel python" vous donnera "/ usr/local/bin/python".

Remplacer/usr/bin/python (ou/usr/bin/Ruby) n’est pas recommandé.

22
Adam Vandenberg

La formule python utilise maintenant python3 (v3.6.5 pour l'instant), brassera le répertoire répertoire :

/usr/local/opt/python -> ../Cellar/python/3.6.5

il reliera également le binaire :

/usr/local/bin/python3 -> ../Cellar/python/3.6.5/bin/python3

Si vous devez toujours utiliser python2.x, utilisez:

brew install python@2

Pour utiliser la variable python de homebrew, il suffit de mettre son répertoire dans PATH, pour bash:

export PATH="/usr/local/opt/python/libexec/bin:$PATH"

pour les poissons:

set -x PATH /usr/local/opt/python/libexec/bin $PATH

Remarque:

  1. cela occultera la version par défaut du système de python
  2. homebrew liait python à /usr/local/share/python dans les versions antérieures.
15
PickBoy

Modifiez votre $ PATH, ajoutez ceci dans votre bashrc ou bash_profile:

export PATH=/usr/local/bin:/usr/local/sbin:~/bin:$PATH

plus cliquez ici: Issue # 89791

12
Aben

Vous devez modifier votre variable d'environnement PATH pour vous assurer que la recherche est effectuée partout où se trouve l'homebrew python avant/usr/bin. Vous pouvez également configurer votre configuration de shell pour qu'une variable telle que PYTHON soit définie sur la version de python souhaitée et appelez $PYTHON plutôt que python à partir de la ligne de commande. 

En outre, comme l'a dit une autre affiche (et en particulier sur mac), NE PAS foirer le python dans/usr/bin pour le diriger vers une autre installation de python. Vous ne faites que demander des ennuis si vous le faites.

10
JoshAdel

J'ai fait brew install python, mon $PATH était bon, mais néanmoins, which python m'a donné le système installé. Le redémarrage du terminal l'a corrigé.

9

Je pense qu’il ya des moyens de faire de homebrew python default, mais à mon avis la bonne façon de résoudre un problème est de ne pas déranger les chemins du système python: il est préférable de créer un virtualenv dans lequel homebrew python serait default (en utilisant virtualenv - option -python). Utiliser des outils tels que python_select est presque toujours une mauvaise idée.

5
Mikhail Korobov

python pointe maintenant sur python3; si vous avez besoin de python 2, faites alors: brew install python@2 puis dans votre fichier .zshrc ou .bashrcexport PATH="/usr/local/opt/python@2/libexec/bin:$PATH" Maintenant, pyhon --version = Python 2.7.14 et python3 --version = Python 3.6.4. C'est le comportement que j'ai l'habitude de voir dans mon terminal.

4
pixel 67

Il suffit de faire:

brew install python
brew link python

Après cela, ajoutez ceci à votre bashrc ou bash_profile:

alias python='/usr/local/bin/python2'

Prendre plaisir!

1
Aaditya Prasad

Depuis High Sierra, vous devez utiliser:

Sudo chown -R $(whoami) $(brew --prefix)/*

C'est parce que /usr/local ne peut plus être chondé

0
zaolian

Ajoutez explicitement le /usr/local/opt/python/libexec/bin à votre .bash_profile:

export PATH="/usr/local/opt/python/libexec/bin:$PATH"

Après cela, cela devrait fonctionner correctement.

0
Dmytro Melnychuk

Vous pouvez éditer/etc/chemins. Voici le mien:

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

Ajoutez ensuite un lien symbolique pour la version python. Dans mon cas

$ cd /usr/local/bin
$ ln -s python3 python

Voila!

0