导入错误:无法导入名称“PackageFinder”

Has*_*oud 10 python pip anaconda conda

更新 conda 中的所有内容后,pip 无法安装任何内容

conda update -n base conda
conda update --all
Run Code Online (Sandbox Code Playgroud)

安装或升级任何东西时,显示此错误

   $ pip install --upgrade HDF5
Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\Scripts\pip-script.py", line 10, in <module>
    sys.exit(main())
  File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_internal\main.py", line 45, in main
    command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
  File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_internal\commands\__init__.py", line 96, in create_command
    module = importlib.import_module(module_path)
  File "C:\ProgramData\Anaconda3\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_internal\commands\install.py", line 23, in <module>
    from pip._internal.cli.req_command import RequirementCommand
  File "C:\ProgramData\Anaconda3\lib\site-packages\pip\_internal\cli\req_command.py", line 17, in <module>
    from pip._internal.index import PackageFinder
ImportError: cannot import name 'PackageFinder'
Run Code Online (Sandbox Code Playgroud)

请任何帮助。谢谢你。

小智 15

看来这行得通。重新安装最新版本的pip:

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && python get-pip.py
Run Code Online (Sandbox Code Playgroud)

完成后,删除安装脚本:

$ rm get-pip.py
Run Code Online (Sandbox Code Playgroud)


gg1*_*g11 10

通过手动更新解决了这个问题:Command Line Tools for XCode。

从终端运行: softwareupdate --list 它将生成可用更新的列表。

稍等一下就会显示列表(不会花很长时间)。并在下面查找“* Label:”Software Update found the following new or updated software:

它应该这样说:* Label: Command Line Tools for Xcode-13.0

然后只需运行:softwareupdate -i "Command Line Tools for Xcode-13.0"并将括号中的文本替换为之前输出中的标签。然后,这将安装 python3 的更新和修复。

然后运行:pip3 --version它应该可以工作。


小智 5

如果您尝试重新安装 pip 并且发行版的预打包版本与之前安装的版本不匹配(例如19.0.3 (packaged)20.0.2 (installed)在撰写本文时),通常会发生这种情况。

删除/path/to/site-packages/pip*目录是一个简单(但安全)的解决方案。

这是系统安装版本的一个小 bash 脚本(因此需要 sudo):

#!/bin/bash
set -e

 # Set PY_MAJ and PY_MIN with your own python "major.minor" version
 # Example for python 3.8
 # PY_MAJ='3'
 # PY_MIN='8'
 cd /usr/lib/python${PY_MAJ}.${PY_MIN}/site-packages/ \
 && rm -rf pip/ \
 && rm -rf pip-*/ \
 ; cd -
Run Code Online (Sandbox Code Playgroud)

虚拟环境注意事项: 基本上同样适用于 venv。唯一的区别是“site-packages”目录位置。