【问题标题】:Ensurepip module not existing, how to install manually?确保pip模块不存在,如何手动安装?
【发布时间】:2021-01-18 18:52:58
【问题描述】:

为了不出现 XY 问题:目标是在 Synology dsm 上创建一个虚拟环境,所以没有 apt-get,其中 pip 是手动安装的。

我正在尝试在上述环境中创建一个虚拟环境(手动安装 pip 的 Synology dsm 包 python 3.8)。

但是这会产生以下错误:

$ python3 -m venv new_venv
Error: Command '['/volume1/docker/builder/new_venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.

在发现该错误的过程中,我发现venv 工作“很好”:

$ python3 -m venv --without-pip new_venv 

按预期工作。 pip 本身也按预期工作。但是我必须手动安装 pip。这也导致python的synology dsm版本没有模块ensurepip..

# python3 -c "import ensurepip; print(ensurepip.__file__);"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'ensurepip'

这带来了问题:如何手动安装ensurepip,和/或在不依赖ensurepip 的情况下让虚拟环境安装pip

【问题讨论】:

  • @phd 是的 pip 已通过它安装并正常工作 - 就是 venv 依赖于未安装的 ensurepip

标签: python pip python-3.8 python-venv synology


【解决方案1】:

在你的 venv 虚拟环境中安装 pip

下载最新的pip安装脚本并将文件命名为get-pip.py:

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

使用 Python 3 创建虚拟环境,但其中没有 pip(假设您在 /volume1/docker/builder/):

$ python3 -m venv --without-pip /volume1/docker/builder/new_venv

激活虚拟环境:

$ source /volume1/docker/builder/new_venv/bin/activate

您的提示现在应该在括号中包含虚拟环境名称:

(new_venv) $

该脚本将在 激活 venv 虚拟环境中安装 pip:

(new_venv) $ python get-pip.py
# or
(new_venv) $ python3 get-pip.py

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 2011-11-24
    相关资源
    最近更新 更多