如果我听起来有点傻,请原谅。 我对此感到困惑: 这两者之间有什么区别:
virtualenv myvenv
并且
-m venv myvenv
第一种方法可以很好地帮我创建虚拟环境,而另一种方法则不行。
我使用命令
cd
进入我的开发目录,然后使用virtualenv myvenv
来创建虚拟环境。这样可以成功创建虚拟环境。但如果我使用-m venv myvenv
命令,则会出现错误。如果我听起来有点傻,请原谅。 我对此感到困惑: 这两者之间有什么区别:
virtualenv myvenv
并且
-m venv myvenv
cd
进入我的开发目录,然后使用virtualenv myvenv
来创建虚拟环境。这样可以成功创建虚拟环境。但如果我使用-m venv myvenv
命令,则会出现错误。pip install
安装任何东西。pip
进行安装。venv
即可。virtualenv
,它与venv
基本相同。 - Costantin我认为virtualenv文档阐述得最清楚明白:
venv
是Python 3.3以后集成到标准库中的virtualenv
的一个子集,指的是只有virtualenv
部分功能被包含在venv
中:
venv
可能会更慢,因为它没有"app-data
种子方法"。请在文档中了解有关virtualenv Seeders的更多信息。venv
只能通过升级Python版本来更新,而virtualenv
则可以使用pip进行更新。venv
不可扩展。virtualenv
具有更丰富的编程API(描述虚拟环境而无需创建它们)。请在此处查看venv
API。venv
无法自动发现任意安装的 Python 版本,而 virtualenv
可以。这意味着,如果你想使用 PATH 中除第一个 Python 版本之外的其他版本,你必须在 venv
中指定完整路径的 python
可执行文件。而在 virtualenv
中,你只需要给出版本号即可。请参见虚拟环境文档中的 Python 发现。对我来说,它们之间的差异相当微妙,并且唯一实际的区别是 venv
包含在标准库中(自 3.3 版本开始)。我长期以来一直使用 python -m venv venv
,从未需要其他替代方法。
~/localcopies/python/3.7.7/python -mvenv myproject
。 - rasjanivenv
不仅仅是有时候慢,而是一直慢。你提供的文档(谢谢!)中说速度慢的范围从10倍到10,000倍不等。听起来这个差距并不是很"微妙"。在Linux上,我也有同样的经历。在gitlab中,virtualenv
为我们节省了大量的CI-CD流水线时间。 - undefined
-m venv myvenv
完全不起作用。它完全不起作用的原因是因为它不是一个有效的命令;正确的应该是python -m venv myvenv
。 - Karl Knechtel