{
  "id": "python/pip-yanked-version-installed",
  "signature": "WARNING: The candidate selected for download or install is a yanked version: 'foo' candidate (version 1.2.3 at https://.../foo-1.2.3-py3-none-any.whl)\nReason for being yanked: broken build",
  "signature_zh": "警告：为下载或安装选择的候选版本是被撤回的版本：'foo' 候选（版本 1.2.3）。撤回原因：构建损坏。",
  "regex": "WARNING:\\ The\\ candidate\\ selected\\ for\\ download\\ or\\ install\\ is\\ a\\ yanked\\ version:\\ 'foo'\\ candidate\\ \\(version\\ 1\\.2\\.3\\ at\\ https://\\.\\.\\./foo\\-1\\.2\\.3\\-py3\\-none\\-any\\.whl\\)\\\nReason\\ for\\ being\\ yanked:\\ broken\\ build",
  "domain": "python",
  "category": "install_error",
  "subcategory": null,
  "root_cause": "The maintainer yanked a release on PyPI; pip still installs it if it is the only version satisfying constraints, but warns loudly.",
  "root_cause_type": "generic",
  "root_cause_zh": "维护者在 PyPI 上撤回了某个发布；如果它是唯一满足约束的版本，pip 仍会安装，但会发出警告。",
  "versions": [
    {
      "version": "3.9",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "3.10",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "3.11",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "3.12",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    }
  ],
  "os_specific": {},
  "dead_ends": [
    {
      "action": "",
      "why_fails": "Upgrade only moves to a newer version if one is available; if the yanked release is the only match, the warning persists.",
      "fail_rate": 0.6,
      "condition": "",
      "sources": []
    },
    {
      "action": "",
      "why_fails": "That flag controls script location warnings, not yanked-version warnings.",
      "fail_rate": 0.95,
      "condition": "",
      "sources": []
    }
  ],
  "workarounds": [
    {
      "action": "",
      "success_rate": 0.9,
      "how": "Pin to a non-yanked version:\n  pip install 'foo==1.2.2'\nOr allow any non-yanked:\n  pip install 'foo!=1.2.3'",
      "condition": "",
      "sources": []
    },
    {
      "action": "",
      "success_rate": 0.9,
      "how": "Check available versions:\n  pip index versions foo\nThen choose the latest non-yanked release.",
      "condition": "",
      "sources": []
    }
  ],
  "workarounds_zh": [],
  "transition_graph": {
    "leads_to": [],
    "preceded_by": [],
    "frequently_confused_with": []
  },
  "official_doc_url": null,
  "official_doc_section": null,
  "error_code": null,
  "verification_tier": "ai_generated",
  "confidence": 0.85,
  "fix_success_rate": 0.8,
  "resolvable": "true",
  "first_seen": "2024-06-18",
  "last_confirmed": "2025-01-01",
  "last_updated": "2025-01-01",
  "evidence_count": 0,
  "tags": [],
  "locale": "en",
  "aliases": []
}