Mac OS 安装pyenv pyenv切换版本失败

相信只要你要用Python,那么虚拟环境是必不可少的。你总得让自己能够使用Python2运行旧项目,又能够用Python3运行较新的项目。那么pyenv是你最佳的选择。捣腾公司的电脑和自己的电脑无数次,安装了很多次pyenv,但是每一次都会遇到问题。最多频率遇到的问题就是,pyenv安装好了,但是环境变量配置有问题,无论你用 pyenv global 怎么切换版本,当你执行 python 命令之后,你都会发现。。

系统默认Python版本

第一反应:卧槽,怎么又是这样子。

没办法,今天终于还是忍不住了,不搜帖子,决定照着官网的安装教程来一遍。

1、pyenv的github地址

pyenv github

2、clone源码下来

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

源码clone在用户目录下的隐藏目录 .pyenv 中

也可以用 brew 来安装,命令: brew insatll pyenv ,大部分帖子也是这么做的。这个可以自行搜索,此处不再赘述。

3、配置环境变量

(1)在命令行中执行以下两句命令:

echo 'export PYENV_ROOT="$HOME/.pyenv"' >>~/.bash_profile

echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >>~/.bash_profile

如果你用的是 Zsh ,就写入  ~/.zshrc 文件。没有这个文件请自己新建一个就好了。

如何确定你用的是 Zsh 还是 bash。你可以在命令行中执行命令查看:

echo $SHELL

效果如下:

查看使用的shell解释器

使用 Zsh 请执行:

echo 'export PYENV_ROOT="$HOME/.pyenv"' >>~/.zshrc

echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >>~/.zshrc


(2)接着添加以下配置到 .zshrc 或者 ~/.bash_profile  文件

if command -v pyenv 1>/dev/null 2>&1; then

  eval "$(pyenv init -)"

fi

或者直接使用命令写入:

echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi'>>~/.bash_profile

或者

echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi'>>~/.zshrc

请注意,请保证这条命令中引号中的内容处于 ~/.bashrc 或者 ~/.zshrc 的最底部。因为在 pyenv 初始化期间会操作 path 环境变量,可能导致不可预测的错误。

我就是经常不注意这一点,每次都坑自己。建议以后添加其他环境变量,也都在之前添加,保证这段在最后。

最终结果如图:

最终效果


最后,重启你的终端,开始享受pyenv的便利。

tips:2021年06月23日补充:

    在服务器上添加完环境变量配置后,执行source,报错:

        WARNING: `pyenv init -` no longer sets PATH.

        Run `pyenv init` to see the necessary changes to make to your configuration.        

官网提示

    参考github上的issue:https://github.com/pyenv/pyenv/issues/1906

    修改如下后解决:

        if command -v pyenv 1>/dev/null 2>&1; then

          eval "$(pyenv init --path)"

        fi

使用pyenv virtualenv管理你的虚拟环境:Mac OS 安装pyenv virtualenv插件,管理虚拟环境 -

你可能感兴趣的:(Mac OS 安装pyenv pyenv切换版本失败)