繁体   English   中英

“virtualenv”和“-m venv”在创建虚拟环境中有什么区别(Python)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM