硬件系统:macos catalina 10.15.6
系统包管理:Homebrew 3.1.9
背景:python多个项目,每个项目用到的python版本不同,且项目间依赖库及版本也各不相同,在这种情况下,多项目开发就需要环境的隔离,虚拟环境很好的解决了这一问题。
首先保证你的本地已经安装了python,注意区分是python2还是python3
- virtualenv
# 在系统python中安装
pip3 install virtualenv
好了,安装了virtualenv就i可以使用mkvirutalenv test_env
创建虚拟环境,但是别急,一般我们还会结合virtualenvwrapper更方便虚拟环境的管理
- virtualenvwrapper
故名思义是对virtualenv 的封装
pip3 install virtualenvwrapper
# mac 中添加环境变量,添加到你的系统配置文件中(.bash_profile或.zshrc等)
# workon_home 是你每次创建虚拟环境的目录,最好放在用户根目录下,创建一个隐藏文件
export WORKON_HOME='~/.virtualenvs'
# 指定使用的python路径
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
最后激活环境
source ~/.bash_profile
2.2. 通过virtualenvwrapper创建虚拟环境
常用命令:
- mkvirtualenv test_env1 #创建环境test_env1 ,如果报错找不到mkvirtualenv命令,你可能需要安装
brew install virtualenv 或 brew install virtualenvwrapper
- workon #查看所有的虚拟环境
- mkvirtualenv test_env1 #创建虚拟环境
- rmvirtualenv test_env1 # 删除虚拟环境
- workon test_env1 #切换虚拟环境
- deactivate #退出当前虚拟环境
- pyenv
使用virtualenvwrapper已经能满足大部分需求,但是默认情况下,使用mkvirtualenvwrapper会用你系统默认的python版本创建虚拟环境,但如果我想用指定python版本去创建虚拟环境,就需要pyenv来管理了
- 先在mac安装pyenv
brew install pyenv
- 搞下配置到系统环境变量文件(.zshrc,.bash_profile等)
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
- 基本用法
pyenv install --list #查看python版本
pyenv install 3.7.1 # 安装3.7.1版本python
pyenv uninstall 3.7.1 #卸载
pyenv versions #查看所有的python环境
- 切换python版本
pyenv 提供了三种方法,
pyenv local env
pyenv global env
pyenv shell env
你只需要知道优先级shell>local>global, global一般不用
设定了global 也不用慌,使用deactivate就可以取消了
而local和shell也可以通过切换或者pyenv local --unset , pyenv shell --unset取消
这时已经可以愉快的使用pyenv versions来查看所有python版本了,不过别急再装个pyenv-virtualenvwrapper
brew install pyenv-virtualenvwrapper
- 执行
pyenv virtualenvwrapper
# 1.安装指定的python版本
pyenv virtualenvwrapper
pyenv shell 3.7.1
mkvirtualenv test_env
此时你会看到test_env 不再是用系统版本的python,而是我们指定的3.7.1,是不是很方便,之后切换虚拟环境一样是用workon等操作