python - pip 安装因 ImportError 失败:无法导入名称“SourceDistribution”
问题描述
在干净的 venv 中安装某些东西的示例:
$ rm -rf venv && python3.8 -m venv venv && ./venv/bin/python -m pip install -U pip && ./venv/bin/python -m pip install requests
Collecting pip
Using cached https://files.pythonhosted.org/packages/60/65/16487a7c4e0f95bb3fc89c2e377be331fd496b7a9b08fd3077de7f3ae2cf/pip-20.0-py2.py3-none-any.whl
Installing collected packages: pip
Found existing installation: pip 19.2.3
Uninstalling pip-19.2.3:
Successfully uninstalled pip-19.2.3
Successfully installed pip-20.0
Traceback (most recent call last):
File "/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/runpy.py", line 193, in _run_module_as_main
return _run_code(code, main_globals, None,
...
File "/Users/messa/test/venv/lib/python3.8/site-packages/pip/_internal/distributions/__init__.py", line 1, in <module>
from pip._internal.distributions.source import SourceDistribution
ImportError: cannot import name 'SourceDistribution' from 'pip._internal.distributions.source' (/Users/messa/test/venv/lib/python3.8/site-packages/pip/_internal/distributions/source/__init__.py)
解决方案
当前 pip 版本 20.0 已损坏 - 请参阅https://github.com/pypa/pip/issues/7620
安装 20.0 以外的 pip:
$ pip install -U "pip!=20.0"
更新: pip 20.0.1 已发布,修复了此问题。
如果您因为这个错误而被 20.0 卡住并且无法升级到 20.0.1,请尝试get-pip.py
或easy_install
.
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python get-pip.py --ignore-installed
推荐阅读
- python - threading - 异步逐行读取文件
- caching - 缓存@nestjs/graphql 解析器响应
- python - 在 django 中向模型添加外键时 NOT_NULL 约束失败
- c - 有没有办法制作没有 FAT 格式的 Excel 文件(在 RL-ARM 库中)?
- javascript - 历史 pushState throws Uncaught DOMException: cannot be created in a document (Origin) jQuery, Typo3
- javascript - 如何在节点项目中使用 exe.gz 文件?
- c# - 如何控制 RDLC 报告中 Tablix 表的位置?
- python-3.x - 使用 Anaconda 安装 OrfeoToolbox
- angular - Angular SSG + CSR 与 nginx
- reactjs - Vercel 托管多个环境,如开发和质量保证