python - 如何在 Ubuntu 18.04 上安装 python3.7 并使用 pip 创建一个 virtualenv?
问题描述
我正在尝试在 Ubuntu 18.04 上使用 python 3.7 设置标准虚拟环境(venv),使用 pip(或某种在 venv 中安装软件包的方式)。安装python3.7的标准方法似乎是:
% sudo apt install python3.7 python3.7-venv
% python3.7 -m venv py37-venv
但第二个命令失败,说:
由于 ensurepip 不可用,未成功创建虚拟环境。在 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 社区中已经对此进行了一些讨论,因为有多个 python 版本和/或需要 root 访问权限,以及通过apt
或类似方式安装 python 模块的替代方法。
创建没有 pip ( --without-pip
) 的 venv 成功,但是没有办法在新的 venv 中安装软件包,这似乎在很大程度上违背了目的。
那么在 18.04 上使用 venv 安装和使用 python3.7 的公认“最佳实践”方式是什么?
解决方案
我不知道这是否是最佳实践,但如果我还安装了 python3-venv 和 python3.7-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) %
请注意,它还不必要地安装了所有 python3.6,所以我不能完全说我喜欢它,但至少它确实有效,并且不需要像这样运行未签名的脚本get-pip.py
。
推荐阅读
- javascript - 选中多个复选框时,表单字段应填充公共字段
- c# - 加载新窗体时显示消息框
- javascript - 我的代码什么也没做。可能是什么原因?
- python-3.x - 如何在语句中添加反斜杠而不导致 EOF 错误?
- angular - Angular-Material-Datepicker:自定义选择器的价值问题
- javascript - 如何将道具从父组件添加到子组件的子组件
- python - 在 Keras 中正确构建 YOLOv2 的 Classifier 模型(Darknet19)
- javascript - 在 React-Native Flatlist 中接收新数据时如何更新特定行
- android - Android Camera v1 API lock() 似乎不起作用
- spring-boot - 配置spring boot和redis的问题