新手容易懵之—Python虚拟环境
[简单说明一下pyenv、venv(pyvenv)、virtualenv之间的区别,新手容易懵,自己已近踩过坑了,>_<# ]
最近学习flask开发框架,看官方文档建议安装virtualenv来搭建虚拟环境进行学习和开发。因为以前不曾接触过这个工具,所以就先查了一下virtualenv的资料。但一查就有些懵了,记得看python3.4 Documentation的时候标准库里面已近有一个创建虚拟环境的模块了,这个virtualenv又是要干嘛呢?python3.4标准库自带的创建虚拟机的模块为venv,脚本命令为pyvenv。所以,赶紧再查,然而一字之差害死人了,居然查到了pyenv和virtualenv的区别去了,完全走错了方向。所以,怎么看都跟自己已有的知识储备对不上号。再次仔细把Documentation翻出来看才发现了上面查询时关键字的错误,还好及时纠正,不然自己就要给自己挖坑了。所以,现在问题变成了pyenv、venv(pyvenv)、virtualenv之间的区别了,而且这个问题很重要,无论是学习还是生产环境都很重要。
简单的总结如下:
pyenv是第三方的、开源的多版本Python管理工具,用以管理在一台机器上多个Python发行版本的共存问题,比如一台linux机器上同时安装Python2.7、Python3.4、Python3.5三个版本的管理;
venv模块是Python3.3之后标准库自带的虚拟环境创建和管理工具,在一定程度上能够替代virtualenv。但venv是Python3.3才有的,Python2.X不能使用,而virtualenv同时支持Python2.X和Python3.X,特别是在当前的生产环境中Python2.X还占有很大比例的情况下我们依然需要virtualenv。
下面是几篇相关的博文以资参考:
zrong’s blog 《Python虚拟环境》 Http://zengrong.net/post/2167.htm 强力推荐,讲得十分细致全面
关于pyenv 《Linux 下的 Python多版本管理(pyenv)》http://my.oschina.net/lionets/blog/267469
BASIN OF ATTRACTION 在Python3.4环境中使用pyvenv(即venv模块)替换Flask官方推荐的virtualenv的实践笔记 http://huangziwei.com/tech/pyvenv/
相关文章