Mac环境下使用pyenv和pyenv-virtualenv管理python环境

前言

Mac上会自带Python2和Python3各一个版本,但最好别动,因为这是给MacOS用的,不是给你用的。

我们可以使用pyenv和pyenv-virtualenv安装自己的Python版本和Python虚拟环境。

pyenv用来管理python版本

pyenv-virtualenv用来管理某个python版本对应的虚拟环境

我们选用手动安装的方式,你也可以用homebrew安装

1、安装pyenv并且配置

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

如果你的shell环境是.bash

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

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

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

source  ~/.bash_profile

如果你是.zsh

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

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

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

source  ~/.zshrc

到这里就安装完成且配置好了,

2、安装自己用的Python版本

查看可以安装的Python版本。

pyenv install --list

我选择3.8.6版本进行安装。

pyenv install 3.8.6

安装过程中如果碰到报错   error: Unexpected output of 'arch' on OSX

解决方案是   arch -arch x86_64 env PATH=${PATH/\/opt\/homebrew\/bin:/} pyenv install 3.8.6

安装完成后,目录结构如下:

使新安装的Python版本全局生效

pyenv global 3.8.6

此时我们再输入 python3,就可以看到Python版本已经变了。

3、安装virtualenv并且配置

我们以插件形式把virtualenv安装到.pyenv目录

git clone https://github.com/pyenv/pyenv-virtualenv.git    ~/.pyenv/plugins/pyenv-virtualenv

如果你的shell环境是.bash

echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile

然后重启shell就可以啦

exec "$SHELL"

如果你是.zsh

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

然后重启shell就可以啦

exec "$SHELL"

至此,virtualenv已经安装完毕,此时的目录结构如下:

4、创建某个Python版本对应的某个Python虚拟环境

首先创建一个虚拟环境 ,命令格式为 pyenv virtualenv <版本> <名称>

pyenv   virtualenv   3.8.6    3.8.6-zidonghua-ios

此时再看目录结构:

激活这个虚拟环境 ,命令格式为 pyenv activate <名称>   (反激活为 pyenv deactivate)

pyenv activate 3.8.6-zidonghua-ios

我们就可以在这个Python虚拟环境下愉快的玩耍啦!

可以使用 pip3 安装各种Python库,安装的库都是 3.8.6-zidonghua-ios 专属的。

然而此时我遇到了下面的报错

于是乎我谷歌了一下,在 3.8.6-zidonghua-ios 文件夹下有个文件叫 pyvenv.cfg ,把里面的 include-system-site-packages = false 改为 true就好啦

5、虚拟环境里安装各种Python工具库

在这里我遇到坑了。。。

首先虚拟环境已经激活了,which pip3 也是指向虚拟环境的pip3,但每次 pip3 install 都是安装在了系统目录下,而不是虚拟环境目录下。最后排查了半天,发现时因为我加了 --user

去掉 --user就好了。

强烈建议直接用PyCharm打开一个工程,关联到这个虚拟环境

让PyCharm关联到工程里的 requirements.txt 自动安装是最好的了。

但是要保证pip3的源已经切到公司私有源了,执行 pip3 config list 就可以看到啦。

你可能感兴趣的:(Mac环境下使用pyenv和pyenv-virtualenv管理python环境)