[英]Differences between mkvirtualenv and virtualenv for creating virtual environments
[英]What's the difference between “virtualenv” and “-m venv” in creating Virtual environments(Python)
对不起,如果我听起来有点愚蠢。 我很困惑这两者之间有什么区别
虚拟环境 myvenv
和
-m venv myvenv
第一个对我来说很适合创建虚拟环境,而另一个则不行。
我 CD 进入我的开发目录并使用“ virtualenv myvenv ”,它创建了虚拟环境。 但是如果我使用“ -m venv myvenv ”它只会给出错误。 请帮我理解
venv是一个直接随 python 3 提供的包。所以你不需要pip install
任何东西。
virtualenv是一个独立的库,可在https://virtualenv.pypa.io/en/stable/使用,并且可以使用pip
安装。
它们解决相同的问题并以非常相似的方式工作。
如果您使用 python3,我建议避免“额外”的依赖并坚持使用venv
你的错误可能是因为你使用了 Python2/pip2
我认为virtualenv 文档对此解释得最好:
venv
是自 Python 3.3 以来集成到标准库中的virtualenv
的子集。 子集意味着只有virtualenv
的部分功能在venv
:
venv
可能较慢,因为它没有“ app-data
种子方法”venv
仅通过升级 Python 版本进行升级,而virtualenv
则使用 pip 进行更新。venv
不可扩展virtualenv
有更丰富的编程 API (描述虚拟环境而不创建它们)。 在此处查看venv
API 。venv
不能自动发现任意安装的 python 版本,而virtualenv
可以。 这意味着,如果要使用 PATH 中第一个版本以外的其他 Python 版本,则必须使用venv
指定python
可执行文件的完整路径。 使用virtualenv
,您可以只提供版本号。 请参阅 virtualenv 文档中的python 发现。 对我来说,差异非常微妙,唯一的实际差异是venv
包含在标准库中(自 3.3 起)。 我一直在使用python -m venv venv
很长一段时间,从来不需要替代方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.