Python终端执行pip命令触发大量文件错误的排查请求
Python pip 无法启动的故障排查与修复
问题背景
- 使用环境:VSCode,微软商店版Python 3.10,已通过pip安装cryptography、pygame
- 故障现象:执行
pip install pyinstaller时触发错误,甚至仅输入pip命令也返回相同报错,错误栈如下:
PS C:\Users\Kristian Golin\Documents\GitHub\100-Days-of-Code> pip Traceback (most recent call last): File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2544.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 196, in _run_module_as_main return _run_code(code, main_globals, None, File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2544.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 86, in _run_code exec(code, run_globals) File "C:\Users\Kristian Golin\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pip\__main__.py", line 16, in <module> from pip._internal import main as _main # isort:skip # noqa File "C:\Users\Kristian Golin\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pip\_internal\__init__.py", line 40, in <module> from pip._internal.cli.autocompletion import autocomplete File "C:\Users\Kristian Golin\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pip\_internal\cli\autocompletion.py", line 8, in <module> from pip._internal.cli.main_parser import create_main_parser File "C:\Users\Kristian Golin\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pip\_internal\cli\main_parser.py", line 12, in <module> from pip._internal.commands import ( File "C:\Users\Kristian Golin\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pip\_internal\commands\__init__.py", line 6, in <module> from pip._internal.commands.completion import CompletionCommand File "C:\Users\Kristian Golin\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pip\_internal\commands\completion.py", line 6, in <module> from pip._internal.cli.base_command import Command File "C:\Users\Kristian Golin\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pip\_internal\cli\base_command.py", line 23, in <module> from pip._internal.index import PackageFinder File "C:\Users\Kristian Golin\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pip\_internal\index.py", line 14, in <module> from pip._vendor import html5lib, requests, six File "C:\Users\Kristian Golin\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pip\_vendor\html5lib\__init__.py", line 25, in <module> from .html5parser import HTMLParser, parse, parseFragment File "C:\Users\Kristian Golin\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pip\_vendor\html5lib\html5parser.py", line 8, in <module> from . import _tokenizer File "C:\Users\Kristian Golin\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pip\_vendor\html5lib\_tokenizer.py", line 16, in <module> from ._trie import Trie File "C:\Users\Kristian Golin\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pip\_vendor\html5lib\_trie\__init__.py", line 3, in <module> from .py import Trie as PyTrie File "C:\Users\Kristian Golin\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pip\_vendor\html5lib\_trie\py.py", line 6, in <module> from ._base import Trie as ABCTrie File "C:\Users\Kristian Golin\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pip\_vendor\html5lib\_trie\_base.py", line 3, in <module> from collections import Mapping ImportError: cannot import name 'Mapping' from 'collections' (C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2544.0_x64__qbz5n2kfra8p0\lib\collections\__init__.py)
- 已尝试操作:管理员身份运行终端、重启电脑,均无效
故障原因
核心错误是from collections import Mapping失败——Python 3.10及以上版本中,collections.Mapping已被移除,需从collections.abc导入。而当前pip依赖的html5lib版本过旧,仍在调用废弃API;同时微软商店版Python的路径权限、依赖隔离机制容易引发这类版本兼容问题。
修复方案
方案1:临时修复依赖文件
找到报错的文件:C:\Users\Kristian Golin\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\pip\_vendor\html5lib\_trie\_base.py
打开后将第一行代码修改为:
from collections.abc import Mapping
保存后重新运行pip命令即可临时恢复功能。
方案2:强制重装pip(彻底解决版本兼容)
- 下载Python官方提供的
get-pip.py脚本 - 以管理员权限打开命令提示符,切换到脚本所在目录,执行:
python get-pip.py --force-reinstall
该命令会重装最新版pip,自动替换所有兼容Python 3.10的依赖库。
方案3:更换Python版本(推荐长期方案)
微软商店版Python存在路径权限、依赖管理等潜在问题,建议卸载当前版本,从Python官网下载标准安装包,安装时勾选「Add Python to PATH」选项,后续依赖管理会更稳定。
内容的提问来源于stack exchange,提问作者KristianGolin
相关产品推荐
相关产品推荐

