我正在尝试在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-venv
(python3-venv
用于Debian / Ubuntu上的python3.6)。由于多个python版本和/或需要root访问权限,以及通过apt
或类似方式安装python模块的替代方法,我在python社区中对此进行了一些讨论。
创建不带pip(--without-pip
)的virtualenv可以成功,但是无法在新的virtualenv中安装软件包,这似乎在很大程度上违背了这个目的。
那么在18.04上使用virtualenv安装和使用python3.7的“最佳实践”方法是什么?
答案 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] : "";