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

时间:2018-10-30 18:39:40

标签: python pip virtualenv ubuntu-18.04 python-3.7

我正在尝试在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
     

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

     

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

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

创建不带pip(--without-pip)的virtualenv可以成功,但是无法在新的virtualenv中安装软件包,这似乎在很大程度上违背了这个目的。

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

2 个答案:

答案 0 :(得分:8)

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

 List<Hospital> hos = listHospitals;
 var doctors = docList
.Where(h=> listHospitals.Contains(h.HospitalName));

请注意,它也不需要安装所有python3.6,所以我不能确切地说我喜欢它,但至少它确实可以工作,并且不需要像% sudo apt install python3.7 python3-venv python3.7-venv % python3.7 -m venv py37-venv % . py37-venv/bin/activate (py37-venv) % 那样运行未签名的脚本。

答案 1 :(得分:-4)

String input = "A~B~C~D~E~F";
String[] parts = input.split("~");
String target = parts.length >= 4 ? parts[3] : "";