如何安装 python3.7 并在 Ubuntu 18.04 上使用 pip 创建 virtualenv?

How to install python3.7 and create a virtualenv with pip on Ubuntu 18.04?

我正在尝试在 Ubuntu 18.04 上使用 python 3.7 和 pip(或某种方式在 venv 中安装软件包)设置标准虚拟环境 (venv)。安装python3.7的标准方式好像是:

% sudo apt install python3.7 python3.7-venv
% python3.7 -m venv py37-venv

但是第二个命令失败了,说:

The virtual environment was not created successfully because ensurepip is not available. On Debian/Ubuntu systems, you need to install the python3-venv package using the following command.

apt-get install python3-venv

You may need to use sudo with that command. After installing the python3-venv package, recreate your virtual environment.

Failing command: ['/py37-venv/bin/python3.7', '-Im', 'ensurepip', '--upgrade', '--default-pip']

这是真的;这个 python 没有安装 ensurepip 或 pip。我确实已经安装了 python3.7-venvpython3-venv 适用于 Debian/Ubuntu 上的 python3.6)。我收集到 python 社区对此进行了一些讨论,因为多个 python 版本 and/or 需要根访问权限,以及通过 [=16 安装 python 模块的替代方法=] 或类似的。

在没有 pip (--without-pip) 的情况下创建一个 venv 成功了,但是没有办法在新的 venv 中安装包,这似乎在很大程度上违背了目的。

那么在 18.04 上使用 venv 安装和使用 python3.7 的公认“最佳实践”方法是什么?

我不知道这是否是最佳实践,但如果我还安装 python3-venv 和 python3.7-venv 那么一切正常(这是在新库存上测试的Debian 克星 docker 图片):

% sudo apt install python3.7 python3-venv python3.7-venv
% python3.7 -m venv py37-venv
% . py37-venv/bin/activate
(py37-venv) % 

请注意,它还会不必要地安装所有 python3.6,所以我不能确切地说我喜欢它,但至少它确实有效并且不需要 运行 未签名的按照 get-pip.py 的方式编写脚本。

sudo apt install python3-venv
python3 -m venv env