我正在查看Cristoph Gohlke's python packages,我注意到Python 3.3有一个包Virtualenv。
由于标准python库v3.3中有一个包 venv ,我想知道单独安装这个包是否有优势。
编辑:从两个软件包的文档virtualenv 1.8.2和 venv 我可以说 venv 标准库包缺少以下功能:
--no-site-packages
选项--prompt=PROMPT
如果我无法发现任何其他差异,请在此处写下。
答案 0 :(得分:24)
通常,使用python3.3或更高版本时不需要virtualenv包,因为它通过PEP 405合并到标准库中。正如您在问题中所述,最新版本的virtualenv与标准库中的venv包之间存在一些相对较小的差异。在某种程度上(例如--no-site-packages
),这源于不同的实现。由于venv
在标准库中,因此它不必跳过virtualenv
为了创建自包含的python安装所做的一些扭曲的箍,例如复制python的大部分{ {1}}模块。
最好的资源是彻底阅读PEP。
答案 1 :(得分:2)
问题
--no-site-packages
是两者中的默认值。存在--system-site-packages
选项,但it's broken python3-venv
包当venv首次公布时,我希望它进入维护模式,为老蟒蛇提供错误修复" virtualenv"并且所有开发都将重点放在stdlib venv上。我不确定virtualenv的项目目标/路线图,但我担心我希望的事情没有发生。因此,至少在目前,我一直在使用原始的virtualenv。
答案 2 :(得分:1)
pyvenv 是为Python 3.3和3.4创建虚拟环境的推荐工具
从python 3.5开始使用:
python3 -m venv
venv 是一个可以访问python内部的内置模块
pyvenv 在3.6
中已弃用