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

Gar*_*ryO 9 python pip virtualenv python-3.7 ubuntu-18.04

我正在尝试在Ubuntu 18.04上使用python 3.7通过pip设置标准的virtualenv,或者使用某种方式在virtualenv中安装软件包。安装python3.7的标准方法似乎是: % sudo apt install python3.7 python3.7-venv % python3.7 -m venv py37-venv 但是第二个命令失败,说:

虚拟环境未成功创建,因为surepip不可用。在Debian / Ubuntu系统上,您需要使用以下命令安装python3-venv软件包。

apt-get install python3-venv
Run Code Online (Sandbox Code Playgroud)

您可能需要在该命令中使用sudo。安装python3-venv软件包后,重新创建您的虚拟环境。

失败的命令:['/py37-venv/bin/python3.7','-Im','ensurepip','--upgrade','--default-pip']

这是真的; 没有与此Python一起安装的ensurepip和pip。而且我已经安装python3.7-venv了(python3-venv用于Debian / Ubuntu上的python3.6)。由于多个python版本和/或需要root用户访问权限,以及通过apt或类似方式安装python模块的替代方式,我在python社区中对此进行了一些讨论。

创建不带pip(--without-pip)的virtualenv可以成功,但是随后就无法在新的virtualenv中安装软件包,这似乎大大超出了目的。

那么,在带有virtualenv的18.04上安装和使用python3.7的“最佳实践”方法是什么?

Gar*_*ryO 21

我不知道这是否是最佳实践,但是如果我还安装了python3-venv,那么一切都会正常(这在新鲜的Debian Buster docker映像上进行了测试):

% sudo apt install python3.7 python3-venv python3.7-venv
% python3.7 -m venv py37-venv
% . py37-venv/bin/activate
(py37-venv) % 
Run Code Online (Sandbox Code Playgroud)

请注意,它也不需要安装所有python3.6,因此我不能完全说出我喜欢它,但至少它确实可以工作,并且不需要像这样运行未签名的脚本get-pip.py