首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

不同应用共存之道:虚拟环境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:退出虚拟环境:

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180301G1JR1200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券