[python]不同应用共存之道:虚拟环境virtualenv
Posted 常有自在心
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[python]不同应用共存之道:虚拟环境virtualenv相关的知识,希望对你有一定的参考价值。
大家好!过了一个年,三天打鱼两天晒网的眼镜大叔回来了,祝大家新春快乐,狗年大吉吧~
春节假期,除了走亲访友,咱也没闲着,主要在准备的上线。
一是要进行上线部署;二是要准备一个简单易懂的使用说明;三是想搞个线上收费。
先说说部署上线这一块,目前为止开发都是用flask自带的简易web服务器。
据说这个不能用于生产环境,所以要上正式的web服务器。
本以为搭个web服务器嘛,很简单,开始干了才发现windows server 2012上的python web应用部署有点坑。
先想用IIS,但想不到花了好几天,看了几十篇中外攻略都没搞定,又要装fastcgi又要装zoo的,巨复杂,只好放弃了。
然后转向apache+mod_wsgi,目前还在摸索中,日后搞定了再发攻略哈。
就在这个过程中,发现了一个新词:python的虚拟环境。
作为一个保持了好奇心的大叔,看到新词就一个字,学啊!
果然好奇有好报,这个虚拟环境解决了我一直以来的一个困扰。
安装python后,本机只有一个python环境,随着不断试验各种功能,各种python第三方包也越装越多(毕竟python就是靠丰富的第三方包才声名鹊起的),这就带来一个问题,每个应用其实不需要用到所有的包,本机python环境其实成了所有应用的第三方包的全集。这样一是影响运行效率,二如果不同的应用需要同一包的不同版本,就会有冲突。
虚拟环境可以为每个应用建立一个独立的运行环境,只安装该应用所需的第三方包,且同一个包的版本可以和其它应用不同而互不影响。听起来不错吧,完美解决了上面的问题。
下面记录一下虚拟环境的安装方法。
首先,安装virtualenv:
其次,进入要安装虚拟环境的python应用的目录,创建虚拟环境:
然后,激活虚拟环境:
可以看到命令行前带上了(venv),说明已经进入了这个应用的虚拟环境,后续所有命令都是基于这个环境的。
其实原理也很简单,就是把本机python环境拷贝到venv目录下,然后把虚拟环境的Scripts路径加到path的第一个路径而已,这样所有的python命令都会执行虚拟环境中的命令。上图中查看一下环境变量path就明白了。
最后,在虚拟环境中,pip install安装一遍本应用所需的第三方包,如flask,itchat等,这个虚拟环境就创建好了。
在虚拟环境中重新启动应用:
PS:退出虚拟环境:
以上是关于[python]不同应用共存之道:虚拟环境virtualenv的主要内容,如果未能解决你的问题,请参考以下文章
linux下利用virtualenv与virtualenvwrapper创建python虚拟环境
利用virtualenv实现Python2和Python3共存,且ipython2和ipython3共存