在我问我的问题之前,您应该了解一些事情:
所以,这是我的问题。我试图使用venv创建虚拟环境,并因此继续进行:
根据Python的3.5.6 venv模块文档,使用命令pyvenv /path/to/new/virtual/environment
创建一个虚拟环境。我尝试了该命令并得到:
当前未安装程序“ pyvenv”。您可以通过键入以下命令进行安装:sudo apt install python3-venv
然后,我在文档中搜索了较新的Python版本,并尝试了新的venv命令python3 -m venv /path/to/new/virtual/environment
,并得到以下结果:
虚拟环境未成功创建,因为surepip不可用。在Debian / Ubuntu系统上,您需要使用以下命令安装python3-venv软件包。 apt-get安装python3-venv
在两种情况下,解决方案似乎都是安装python3-venv。我的问题是:通过安装python3-venv我到底要安装什么:venv是否已成为标准库的一部分?此外,如果它是Python模块,为什么还要通过apt-get安装它?据我了解,标准库模块是导入的,而不是安装的;并且标准库外部的模块是通过pip安装的。与此相关的是,为什么ensurepip
不可用?
问题的第二部分:如果要安装python3-venv是可行的方法,那么在Python 3.5.2中使用venv创建虚拟环境的正确方法是:pyvenv my_virtual_environment
或python3 -m venv my_virtual_environment
?
答案 0 :(得分:1)
不用担心文档与micro version number不匹配–此处的增量仅用于错误修复,因此文档保持不变。
您的问题很有趣,因为venv
确实不是可选模块。我的猜测是您的操作系统(或您自己安装的)附带的Python版本似乎带有精简版本或没有标准库。例如,python3.5-minimal
软件包似乎没有它。您的Python在标准库中是否还有其他模块?
编辑:另请参见this question。
安装可以描述为“在正确的位置将文件放入计算机”。但是,导入模块意味着您要告诉Python提供某些功能。要导入模块,必须先安装该模块(例如,在我的计算机上,对于Python 3,该模块已安装在/usr/lib/python3.5
中),并且安装其他模块的一种方法是通过apt
。
python3 -m venv my_virtual_environment
方法也应在3.5中运行,并且是面向未来的版本,因此您可能应该这样做。