You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已安装pip但执行python -m ensurepip报错,影响venv创建

解决Cygwin下Python3.9 ensurepip报错及虚拟环境创建失败问题

问题分析

报错ValueError: max() arg is an empty sequence是因为ensurepip模块内置的setuptools/pip轮子文件缺失,导致它无法找到可用的包版本计算最大值。Cygwin的Python3.9包可能未完整包含ensurepip所需的捆绑轮子,进而触发虚拟环境创建时的ensurepip调用失败。

解决方案

方案1:修复ensurepip的内置轮子

  1. 定位Python3.9的ensurepip目录:
    cd /usr/lib/python3.9/ensurepip/
    
  2. 进入_bundled子目录(如果不存在则手动创建):
    mkdir -p _bundled && cd _bundled/
    
  3. 到PyPI官网搜索与Python3.9兼容的setuptools和pip轮子(推荐版本:setuptools<=65.5.0,pip<=23.2.1),下载后放到当前目录。
  4. 重新运行ensurepip验证:
    python -m ensurepip
    
    无报错后即可正常使用python -m venv创建虚拟环境。

方案2:手动为无pip的虚拟环境安装pip

如果已经用--without-pip创建了虚拟环境,只需手动补装pip即可,不存在潜在问题:

  1. 激活虚拟环境:
    source ~/.envs/proj/bin/activate
    
  2. 下载适配Python3.9的get-pip.py脚本(可从pip官方获取对应版本的脚本)。
  3. 运行脚本安装pip和setuptools:
    python get-pip.py
    
  4. 验证pip正常:
    pip --version
    

方案3:重装Cygwin的Python相关包

可能是Cygwin包安装不完整导致文件缺失,重新安装对应包:

  1. 打开Cygwin的setup.exe,在搜索框分别输入python39-pip和python39-setuptools。
  2. 选择这两个包的「Reinstall」选项,完成安装后重启Cygwin。
  3. 再次测试python -m ensurepip和虚拟环境创建命令。

关于--without-pip的说明

用该参数创建虚拟环境本身没有问题,只是跳过了ensurepip自动安装pip的步骤,只要后续手动安装了pip和setuptools,虚拟环境的功能与正常创建的完全一致,无需担心潜在问题。

内容的提问来源于stack exchange,提问作者Karl Berggren

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 01:20:20