我想用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

当前回答

如果这里的Readme不起作用: https://github.com/pyenv/pyenv

仔细检查之前是否手动设置了路径。在我的情况下,我在我的.zshrc文件中添加了别名到旧的python,删除它后工作得很好!

其他回答

[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)

安装正确的版本后,关闭所有终端并尝试pyenv global 3.7.2,然后尝试python——version,它应该可以工作

这对我来说是一个经常出现的问题,但这些答案都不起作用。我发现当我检查pyenv版本时,它会说:

Python 3.9.6(version set by PYENV_VERSION environment variable)

我只要不设置环境变量,问题就解决了。

试试这个: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

假设你是MacOS用户……

Run

pyenv init

要得到这个建议:

# See the README for instructions on how to set up
# your shell environment for Pyenv.

所以,去https://github.com/pyenv/pyenv#readme获取这个小贴士吧:

Zsh: MacOS,如果Pyenv安装了Homebrew:

echo 'eval "$(pyenv init --path)"' >> ~/.zprofile
 
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

确保你的终端 应用程序将shell作为登录shell运行。

适用于macOS Monterey 12.0.1和pyenv 2.2.0。 Pyenv通过brew安装,python通过Pyenv install安装。