必须安装python3-venv软件包的理由

时间:2018-08-17 19:13:28

标签: python-3.x ubuntu python-venv

在我问我的问题之前,您应该了解一些事情:

  • 我对Linux和Python还是陌生的,并且很难理解官方文档和技术答案(但是强烈希望深刻理解这两者)
  • 我正在运行基本OS 0.4.1 Loki
  • 我的Python 3版本是3.5.2。当我在venv模块上搜索python 3.5.2的在线文档时,会获得3.5。 6 版本的文档。我不明白为什么没有有关。 2 版本的文档。

所以,这是我的问题。我试图使用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_environmentpython3 -m venv my_virtual_environment

1 个答案:

答案 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中运行,并且是面向未来的版本,因此您可能应该这样做。