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

当前回答

在第一个问题中,我看到MacOS和Pyenv安装了Homebrew。对于shell,我假设是Zsh,所以应该有:

进入文件~/。Zprofile下面这一行

eval "$(pyenv init --path)"

并进入文件~/。下面这一行

eval "$(pyenv init -)"

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

对于其他版本,我建议查看README和安装后步骤

其他回答

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

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

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

以上答案没有一个管用。看起来我没有遵循正确的安装过程。我通过以下方法来解决这个问题:

进入~/.zshrc 在文件末尾添加别名brew='env PATH="${PATH//$(pyenv root)\/shims:/}" brew' 执行pyenv init命令

在pyenv文档中有更多关于这方面的内容

背景

现在:20210926 麦克:10.15.7 pyenv: 2.0.7

解决方案

对于当前控制台

eval "$(pyenv init --path)"

用于每次启动后的工作

如果你想在Mac引导后自动生效,那么把它添加到你的引导脚本中

这里是zsh,所以:

vi ~/.zshrc

add

Eval $(pyenv init——path)

完成了。

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