我想用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
我用brew安装了pyenv和pyenv-virtualenv,也遇到了同样的问题。
在你知道该怎么做之后就很容易解决了:
1-你需要知道你在使用什么shell解释器。直接引用自https://support.apple.com/en-us/HT208050
默认情况下,Mac使用zsh或bash作为命令行
登录shell和交互shell的解释器:
zsh (Z shell)是所有新创建的用户帐户的默认shell,从macOS Catalina开始。
bash是macOS Mojave及更早版本的默认shell。
当然,每个解释器都为环境变量使用不同的文件,如PATH、JAVA_HOME等。
bash使用$HOME/。bash_profile和$HOME/。而zsh使用$HOME/。$HOME/.zshrc
2-在安装pyenv和安装你想要使用的python版本(例如pyenv install 3.y)之后,打开/。Bash_profile或/。Zprofile文件WRT你的解释器。
注1:我使用bash解释器和我的$HOME/。Bashrc文件为空。我不知道会发生什么不管/中的PATH声明。Bashrc会影响/。是否声明Bash_profile。你可能需要检查一下。
pyenv创建$HOME/。Pyenv /shims目录,并使用它来切换您安装的python版本。
因此,您只需要在底部添加以下一行(不一定是文件的最底部)。你只需要走到所有PATH声明的末尾。)
export PATH=$HOME/.pyenv/shims:$PATH
注2:“$ HOME /。pyenv/shims"必须在PATH变量的开头。因为解释器从左到右读取所有路径。因此,将来要小心向PATH变量添加新路径。
Note3: There are two commands that sets python version. One is "pyenv global #python_version_here#" and the other is "pyenv local #python_version_here#". Under a directory, hierarchically "local" command is top of "global" one. So, if you run the "local" command under $HOME directory, you cannot change the global python version with the "global" command. In that case, either
1- You can continue to use "local" command under the $HOME directory
2- Delete $HOME/.python-version file and return to "global" setting
这是我的shell输出来显示这个层次结构:
Ozgurs-MacBook-Pro:~ ozgurcengelli$ pyenv global system
Ozgurs-MacBook-Pro:~ ozgurcengelli$ pyenv versions
* system (set by /Users/ozgurcengelli/.pyenv/version) #look the path
3.6.15
Ozgurs-MacBook-Pro:~ ozgurcengelli$ pyenv local system
Ozgurs-MacBook-Pro:~ ozgurcengelli$ pyenv versions
* system (set by /Users/ozgurcengelli/.python-version) #look the path
3.6.15
Ozgurs-MacBook-Pro:~ ozgurcengelli$ pyenv global 3.6.15
Ozgurs-MacBook-Pro:~ ozgurcengelli$ pyenv versions
* system (set by /Users/ozgurcengelli/.python-version) #look the path
3.6.15
Ozgurs-MacBook-Pro:~ ozgurcengelli$ rm $HOME/.python-version
Ozgurs-MacBook-Pro:~ ozgurcengelli$ pyenv versions
system
* 3.6.15 (set by /Users/ozgurcengelli/.pyenv/version) #look the path