我在之前写过一篇 Python学习教程 ,说过新手往往没有注意环境隔离,导致Python项目包与包之间冲突。
成都网络公司-成都网站建设公司创新互联十载经验成就非凡,专业从事网站建设、网站设计,成都网页设计,成都网页制作,软文营销,一元广告等。十载来已成功提供全面的成都网站建设方案,打造行业特色的成都网站建设案例,建站热线:13518219792,我们期待您的来电!并且Python2与3代码执行有问题等等。鉴于此我决定今天的 Python学习教程 给大家聊聊关于Python环境隔离问题以及如何进行隔离。
我们都知道Python开发项目很容易,项目也经得起工业级别考验。很多开发者都会习惯用Python开发项目,但是由于我们每个项目情况都有些不一样。比如 今天可能用的是Django 1.8,明天可能用的是Django 2.1。
如果不进行环境隔离全局安装就会导致包的冲突,依赖不同,出现问题。
这个时候每个应用都需要一套「独立」的Python运行环境。而Virtualenv就是拿来为应用创建这一套「隔离」的Python运行环境。
首先用pip安装
pip install virtualenv
创建虚拟环境
sitin@test:/data/opt/test$ virtualenv venv
sitin@test:/data/opt/test$ source venv/bin/activate
(venv) sitin@test:/data/opt/test$ deactivate
sitin@test:/data/opt/test$
上面如果我们配置了vitualenvwrapper会更加方便切换进入虚拟环境,做到一键切换进入虚拟环境。不用每次都去到指定项目目录里面进行 source venv/bin/activate。
安装如下:
pip install virtualenvwrappermkdir ~/.virtualenvs
安装好了,你可以在你的.bashrc或者.zshrc配置virtualenvwrapper,配置如下。
export WORKON_HOME=$HOME/.virtualenvs # 指定目录 export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' # 隔离系统site-packages export PIP_VIRTUALENV_BASE=$WORKON_HOME export PIP_RESPECT_VIRTUALENV=true if [[ -r /usr/local/bin/virtualenvwrapper.sh ]]; then source /usr/local/bin/virtualenvwrapper.sh else echo "WARNING: Can't find virtualenvwrapper.sh" fi
配置好我们可以创建我们虚拟环境方式如下:
mkvirtualenv your_project #创建rmvitualenv your_project #删除workon # 列出项目workon your_project # 进去某个项目
通过上面这种方式,让我们更加方便切换进入虚拟环境了。
说了vitualenv,vitualenvwrapper,进行Python 包的环境隔离,我们接下来聊聊我们 终极利器 pyenv -- Python版本的隔离。
我们都知道python存在2,3问题,我们经常需要维护老版本Python2项目,也要考虑新版本Python3的迁移。
说它是终极利器是它除了python版本问题,也可以结合virtualenv,vitualenvwrapper一起使用。
目前pyenv这个库在github上面有14K+的star,可见受到到了非常多的关注。
这里面我们直接进入Mac的安装环节:
brew install pyenvbrew install pyenv-virtualenvbrew install pyenv-virtualenvwrapper
把下面的配置加入到我们的shell环境中,比如我的就是.zshrc。
# ---pyenv--- export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)"
配置好之后,我们可以看到pyenv的shell补全,如下图。