我想用pyenv来切换python2和python3。

我成功下载了python2和python3和pyenv下面的代码。

brew install pyenv

brew install pyenv-virtualenv

pyenv install 2.7.10

pyenv install 3.5.0

但是,我不能从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$ 

我不明白为什么会这样。

我的python在这个目录中。

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

当前回答

手动操作。 更改~/.zprofile中的路径

vim ~/.zprofile
 PATH="/Users/you-user-name/.pyenv/versions/3.10.9/bin:${PATH}"
 export PATH

其他回答

运行eval "$(pyenv init -)"(注意引号)在Mac OS的终端中添加Pyenv shims目录到PATH。然后再次运行pyenv global 3.5.0,并使用python3——version检查。

试试这个:eval "$(pyenv init -)"

例子:

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

更多信息: https://github.com/pyenv/pyenv

你忘记添加这个eval "$(pyenv init -)"。

将此添加到您的.bash_profile或.bashrc文件(mac <=10.14)或.zshrc文件(mac 10.15+)

在ubuntu中~/。Bashrc文件需要更新,将eval“$(pyenv init -)”更改为eval“$(pyenv init——path)”。

编辑:只是要指出,更改将在重新启动终端后生效。如果您不想重新启动终端,除了更改文件之外,还可以执行额外的步骤。在终端中执行你在文件中修改的命令:eval "$(pyenv init——path)"

[2021年11月]

这就是用ZSH在Mac OSX上为我修复的问题。Pyenv在解释需要向ZSH配置中添加什么方面做得很差。没有定义$PYENV_ROOT。秩序很重要。

将它添加到~/的顶部。zshrc配置:

export PATH="$HOME/.pyenv/bin:$PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH"
PYENV_ROOT=$(pyenv root)