web-dev-qa-db-fra.com

Impossible de basculer Python avec pyenv

J'aimerais utiliser pyenv pour basculer entre python2 et python3.

J'ai téléchargé avec succès python2 et python3 et pyenv avec les codes suivants.

brew install pyenv

brew install pyenv-virtualenv

pyenv install 2.7.10

pyenv install 3.5.0

Cependant, je ne peux pas passer de python2 à python3.

Soma-Suzuki:~ Soma$ python --version
Python 2.7.10
Soma-Suzuki:~ Soma$ pyenv global
2.7.10
Soma-Suzuki:~ Soma$ pyenv versions
  system
* 2.7.10 (set by /Users/Soma/.pyenv/version)
  3.5.0
Soma-Suzuki:~ Soma$ pyenv global 3.5.0
Soma-Suzuki:~ Soma$ pyenv global
3.5.0
Soma-Suzuki:~ Soma$ pyenv versions
  system
  2.7.10
* 3.5.0 (set by /Users/Soma/.pyenv/version)
Soma-Suzuki:~ Soma$ python --version
Python 2.7.10
Soma-Suzuki:~ Soma$ 

Je ne comprends pas pourquoi cela se produit.

Pour votre information . Mon python est dans ce répertoire.

Soma-Suzuki:~ Soma$ which python
/usr/bin/python

Merci d'avance.

18
Soma Suzuki

essayez ceci: eval "$ (pyenv init -)"

exemple:

$ python -V
Python 2.7.9
mac:~ $ eval "$(pyenv init -)"
mac:~ $ python -V
Python 3.5.0

plus d'infos: https://github.com/yyuu/pyenv

44
Diego Ubirajara

Vous avez oublié d'ajouter cette eval "$(pyenv init -)" à la 1ère ligne du fichier .bash_profile (si vous utilisez un Mac) ou du fichier .bashrc.

10
alien_frog

Cette réponse s’adresse uniquement aux personnes qui utilisent Fish Shell et trouvent ce fil. Pyenv utilise des cales, ref , aussi, pour que pyenv fonctionne avec votre poisson Shell, vous devez modifier votre fichier ~/.config/fish/config.fish et ajouter le répertoire pyen shim au début de votre $ PATH variable. Voici à quoi ressemble mon config.fish. 

### PATH ###
set default_path /usr/local/bin /usr/bin /usr/sbin /bin /sbin
set macports /opt/local/bin
set androiddev ~/Android\ Development/platform-tools/
set rbenv ~/.rbenv/shims/
set pyenv ~/.pyenv/shims/
set anaconda /Users/m4punk/anaconda/bin/
set pg_config /Applications/Postgres.app/Contents/Versions/9.5/bin/


### Virtual Enviroment Wrapper ###

set -g VIRTUALFISH_HOME ~/Documents/Coding/python/virtualenvs
set -g VIRTUALFISH_DEFAULT_PYTHON /usr/local/bin/python3
eval (python -m virtualfish)

### NVM Settings ###
set -g NVM_DIR ~/.nvm

set -gx PATH $pyenv $default_path $macports $androiddev $rbenv $pg_config

setenv EDITOR sublime

Les lignes pertinentes ici sont

set pyenv ~/.pyenv/shims/

et 

set -gx PATH $pyenv $default_path $macports $androiddev $rbenv $pg_config

Le premier crée une variable pour le chemin d'accès pyenv, le second l'ajoute à l'avant de votre variable de chemin. Il suffit de sauvegarder et de fermer, de redémarrer votre session de terminal et vous devriez être prêt.

1
Joe