MacOS自带老掉牙的python2.7,因为删掉会破坏系统完整性,还不能乱删。让python3和python2和平相处就是系统环境变量管理的其中一个场景。
本文记录在MacOS下安装virtualenv,管理多套系统环境变量配置的方法。
检查python和pip版本
检查Homebrew Python更新
更换Homebrew为中科大镜像源,在~/.zshrc
中添加一行
export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles
然后检查Python更新
➜ hexo git:(master) ✗ brew upgrade python
Updating Homebrew...
Warning: python 3.8.5 already installed
检查Python命令是否在3.8.5
➜ hexo git:(master) ✗ python -V
Python 3.8.5
➜ hexo git:(master) ✗ pip -V
pip 20.2.3 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)
pip使用中科大镜像源
特别注意,用阿里云的源会安装失败,特别坑。报错如下
ERROR: Could not find a version that satisfies the requirement pbr (from versions: none)
更换镜像源需要添加文件: ~/.pip/pip.conf
[global]
index-url=https://pypi.mirrors.ustc.edu.cn/simple/
[install]
trusted-host=pypi.mirrors.ustc.edu.cn
安装与使用virtualenv
安装virtualenv
sudo pip install virtualenvwrapper
创建文件夹用于存储环境~/Envs
,在~/.zshrc
中添加以下内容
export WORKON_HOME=~/Envs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
使用virtualenv(参考网上用法)
我们准备使用Python 3创建一个新的虚拟环境
$ mkvirtualenv --python=python3_path myenv
其中python3_path是python3的路径,可以在其中找到
$ which python3
就我而言
$ mkvirtualenv --python=/usr/local/bin/python3 myenv
这将在环境文件夹〜/ .virtualenvs中创建一个文件夹myenv。运行上一个命令后,新环境将处于活动状态。要停用它,只需输入:
$ deactivate
并再次激活它
$ workon myenv
在你的python3虚拟环境中,如果你输入
$ python
你激活python 3!此外,您可以使用pip调用pip3并安装python3包。
例如,您可以使用安装 Django 1.7
$ pip install Django==1.7
相关命令
## 查看当前已有环境
➜ hexo git:(master) ✗ lsvirtualenv
test
====
## 删除环境 Test
rmvirtualenv test
原理说明
virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source test/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。