【发布时间】:2019-01-24 20:42:38
【问题描述】:
在我提问之前你应该知道的一些事情:
- 我对 Linux 和 Python 都完全陌生,很难理解官方文档和技术答案(但迫切希望深入理解两者)
- 我正在运行elementary 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 并得到以下结果:
没有成功创建虚拟环境,因为 ensurepip 不可用。在 Debian/Ubuntu 系统上,您需要使用以下命令安装 python3-venv 包。 apt-get install 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?
【问题讨论】:
-
正要问同样的问题。我不知道为什么我们必须安装 python3-venv 才能使用这个“核心”模块。在那种情况下,是什么让 venv 优于 virtualenv?您必须同时安装两者。
标签: python-3.x ubuntu python-venv