python - 阅读文档构建失败,“无法从 'pip._internal.index' 导入名称 'PackageFinder'”
问题描述
在 read-the-docs 上构建 Sphinx 文档失败并出现以下错误(完整日志如下):
ImportError: cannot import name 'PackageFinder' from 'pip._internal.index' (/home/docs/checkouts/readthedocs.org/user_builds/cascade-python/envs/latest/lib/python3.7/site-packages/pip/_internal/index/__init__.py)
我做错了什么还是这是阅读文档中的错误?
Sphinx 文档的本地构建运行良好。
阅读文档的完整错误日志:
Read the Docs build information
Build id: 10299638
Project: cascade-python
Version: latest
Commit: a7d50bf781bd8076b10dd7024db4ccb628016c27
Date: 2020-01-21T17:03:12.876711Z
State: finished
Success: False
[rtd-command-info] start-time: 2020-01-21T17:03:13.203354Z, end-time: 2020-01-21T17:03:13.215400Z, duration: 0, exit-code: 0
git remote set-url origin https://github.com/brunorijsman/cascade-python.git
[rtd-command-info] start-time: 2020-01-21T17:03:13.276220Z, end-time: 2020-01-21T17:03:13.630658Z, duration: 0, exit-code: 0
git fetch origin --force --tags --prune --prune-tags --depth 50
From https://github.com/brunorijsman/cascade-python
2a28505..a7d50bf master -> origin/master
[rtd-command-info] start-time: 2020-01-21T17:03:13.824496Z, end-time: 2020-01-21T17:03:13.876904Z, duration: 0, exit-code: 0
git checkout --force origin/master
Previous HEAD position was 2a28505 Fix lint
HEAD is now at a7d50bf Trigger docs build
[rtd-command-info] start-time: 2020-01-21T17:03:13.941290Z, end-time: 2020-01-21T17:03:13.951085Z, duration: 0, exit-code: 0
git clean -d -f -f
[rtd-command-info] start-time: 2020-01-21T17:03:16.657644Z, end-time: 2020-01-21T17:03:22.489740Z, duration: 5, exit-code: 0
python3.7 -mvirtualenv --no-site-packages --no-download /home/docs/checkouts/readthedocs.org/user_builds/cascade-python/envs/latest
Using base prefix '/home/docs/.pyenv/versions/3.7.3'
New python executable in /home/docs/checkouts/readthedocs.org/user_builds/cascade-python/envs/latest/bin/python3.7
Not overwriting existing python script /home/docs/checkouts/readthedocs.org/user_builds/cascade-python/envs/latest/bin/python (you must use /home/docs/checkouts/readthedocs.org/user_builds/cascade-python/envs/latest/bin/python3.7)
Installing setuptools, pip, wheel...
done.
[rtd-command-info] start-time: 2020-01-21T17:03:22.562608Z, end-time: 2020-01-21T17:03:23.258281Z, duration: 0, exit-code: 1
/home/docs/checkouts/readthedocs.org/user_builds/cascade-python/envs/latest/bin/python -m pip install --upgrade --cache-dir /home/docs/checkouts/readthedocs.org/user_builds/cascade-python/.cache/pip pip
Traceback (most recent call last):
File "/home/docs/.pyenv/versions/3.7.3/lib/python3.7/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/home/docs/.pyenv/versions/3.7.3/lib/python3.7/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/home/docs/checkouts/readthedocs.org/user_builds/cascade-python/envs/latest/lib/python3.7/site-packages/pip/__main__.py", line 16, in <module>
from pip._internal import main as _main # isort:skip # noqa
File "/home/docs/checkouts/readthedocs.org/user_builds/cascade-python/envs/latest/lib/python3.7/site-packages/pip/_internal/__init__.py", line 40, in <module>
from pip._internal.cli.autocompletion import autocomplete
File "/home/docs/checkouts/readthedocs.org/user_builds/cascade-python/envs/latest/lib/python3.7/site-packages/pip/_internal/cli/autocompletion.py", line 8, in <module>
from pip._internal.cli.main_parser import create_main_parser
File "/home/docs/checkouts/readthedocs.org/user_builds/cascade-python/envs/latest/lib/python3.7/site-packages/pip/_internal/cli/main_parser.py", line 12, in <module>
from pip._internal.commands import (
File "/home/docs/checkouts/readthedocs.org/user_builds/cascade-python/envs/latest/lib/python3.7/site-packages/pip/_internal/commands/__init__.py", line 6, in <module>
from pip._internal.commands.completion import CompletionCommand
File "/home/docs/checkouts/readthedocs.org/user_builds/cascade-python/envs/latest/lib/python3.7/site-packages/pip/_internal/commands/completion.py", line 6, in <module>
from pip._internal.cli.base_command import Command
File "/home/docs/checkouts/readthedocs.org/user_builds/cascade-python/envs/latest/lib/python3.7/site-packages/pip/_internal/cli/base_command.py", line 25, in <module>
from pip._internal.index import PackageFinder
ImportError: cannot import name 'PackageFinder' from 'pip._internal.index' (/home/docs/checkouts/readthedocs.org/user_builds/cascade-python/envs/latest/lib/python3.7/site-packages/pip/_internal/index/__init__.py)
解决方案
问题和修复在 read-the-docs 问题 #6554 ( https://github.com/readthedocs/readthedocs.org/issues/6554 ) 中有描述:
目前所有构建都失败了,因为自动升级(从 #4823 开始)到 pip 20.0 是错误的(参见 pypa/pip#7620 )。现在有一个 20.0.1 版本似乎已经解决了其他人的问题......但我如何才能强制我的 readthedocs 也升级到 .1 版本?
修复方法是按如下方式清除构建环境(取自https://docs.readthedocs.io/en/stable/guides/wipe-environment.html):
- 登录阅读文档
- 转到版本
- 单击页面右侧要擦除的版本的编辑按钮
- 转到页面底部,然后单击“保存”按钮旁边的擦除链接
- 现在您可以使用全新的构建环境重新构建版本!
此修复对我有用(但从 2020 年 1 月 26 日起,您必须清除每个构建的环境——请参阅下面 Grimmy 的评论)。
推荐阅读
- c# - 如何访问包装在 Task<> 中的对象属性?
- python - 在 python 中,如何在 CSV 文件中搜索某个关键字并使用 pandas 编辑该关键字之后的单元格?
- path - 如何使用 Leaflet 在 Ant 路径中动态暂停?
- python - threading.Timer 模块需要建议
- python - 如何使用 for 循环更新 Tkinter 标签/画布小部件中的文本?
- docker - 在 Windows 10 docker 中创建仅主机适配器的问题
- angular - 如何从 API 获取数据作为类的实例
- java - 在多个空格而不是单个空格上拆分字符串?
- xml - 编辑结果中的属性
- git-flow - 请指出我的 git flow 的缺点