Последний 'pip' терпит неудачу с "требует setuptools >= 0.8 для dist-info"
Используя последнюю (1.5) версию pip
Я получаю сообщение об ошибке при попытке обновить несколько пакетов. Например, sudo pip install -U pytz
приводит к неудаче с:
Wheel installs require setuptools >= 0.8 for dist-info support.
pip's wheel support requires setuptools >= 0.8 for dist-info support.
Я не понимаю это сообщение (у меня есть setuptools
2.1) или что с этим делать.
Информация об исключении из журнала для этой ошибки:
Exception information:
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 230, in run
finder = self._build_package_finder(options, index_urls, session)
File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 185, in _build_package_finder
session=session,
File "/Library/Python/2.7/site-packages/pip/index.py", line 50, in __init__
self.use_wheel = use_wheel
File "/Library/Python/2.7/site-packages/pip/index.py", line 89, in use_wheel
raise InstallationError("pip's wheel support requires setuptools >= 0.8 for dist-info support.")
InstallationError: pip's wheel support requires setuptools >= 0.8 for dist-info support.
3 ответа
Это сработало для меня:
sudo pip install setuptools --no-use-wheel --upgrade
Обратите внимание, что это использование sudo
ОБНОВИТЬ
В окне вам просто нужно выполнить pip install setuptools --no-use-wheel --upgrade
как администратор В Unix/ Linux, sudo
Команда для повышения прав.
ОБНОВИТЬ
Похоже, это было исправлено в 1.5.1.
Во-первых, вы никогда не должны запускать 'sudo pip'.
Если возможно, вам следует использовать системный менеджер пакетов, потому что он использует подписи GPG, чтобы гарантировать, что вы не запускаете вредоносный код.
В противном случае попробуйте обновить setuptools:
easy_install -U setuptools
Или попробуйте:
pip install --user <somepackage>
Это конечно для "глобальных" пакетов. В идеале вы должны использовать virtualenvs.
В качестве вклада в усилия по отладке я получил сообщение «AssertionError: обнаружено несколько каталогов .egg-info: подпроцесс-вышел с ошибками» в Windows Python 3.11. Кажется, это связано с setuptools.
Я чистил файл c:\users<user>\appdata\local\temp, но ошибка не исчезла. Не найдено имя файла/папки, соответствующее ".egg-info" (хотя есть файлы, соответствующие "egg_info"
Возможно, необычным фактом является то, что пакет, который я создаю, находится на диске F:, а виртуальная среда находится на диске C: в остальном пути в порядке.
(venv_mfa) PS F:\pj_tpl> python -m pip install --no-cache-dir -v -e . Использование pip 23.1.2 из C:\Users\mgua0\venv_mfa\Lib\site-packages\pip (python 3.11) Получение файла:///F:/pj_tpl Запуск подпроцесса команды pip для установки зависимостей сборки Сбор установочных инструментов Использование кэшированного файла setuptools-67.8.0-py3-none-any.whl (1,1 МБ) Установка собранных пакетов: setuptools Успешно установлено setuptools-67.8.0. Установка зависимостей сборки... готово Запуск команды. Проверка, поддерживает ли серверная часть сборки build_editable. Проверка, поддерживает ли серверная часть сборки build_editable... готово Выполнение команды Получение требований для сборки, доступной для редактирования Получение требований для сборки редактируемого... готово Запуск подпроцесса команды pip для установки зависимостей серверной части Коллекционное колесо Использование кэшированного колеса-0.40.0-py3-none-any.whl (64 КБ) Установка собранных пакетов: колесо Успешно установлено колесо-0.40.0 Установка внутренних зависимостей... готово Запуск команды. Подготовка редактируемых метаданных (pyproject.toml). Traceback (последний вызов последний): Файл «C:\Users\mgua0\venv_mfa\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py», строка 353, в основной() Файл «C:\Users\mgua0\venv_mfa\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py», строка 335, в основном файле. json_out['return_val'] = крючок(**hook_input['kwargs']) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл «C:\Users\mgua0\venv_mfa\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py», строка 181, в prete_metadata_for_build_editable возвратный крючок (каталог_метаданных, config_settings) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл «C:\Users\mgua0\AppData\Local\Temp\pip-build-env-swirme89\overlay\Lib\site-packages\setuptools\build_meta.py», строка 454, в prete_metadata_for_build_editable return self.prepare_metadata_for_build_wheel( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл «C:\Users\mgua0\AppData\Local\Temp\pip-build-env-swirme89\overlay\Lib\site-packages\setuptools\build_meta.py», строка 382, в prete_metadata_for_build_wheel self._bubble_up_info_directory(каталог_метаданных, ".egg-info") Файл «C:\Users\mgua0\AppData\Local\Temp\pip-build-env-swirme89\overlay\Lib\site-packages\setuptools\build_meta.py», строка 353, в _bubble_up_info_directory info_dir = self._find_info_directory(каталог_метаданных, суффикс) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ Файл «C:\Users\mgua0\AppData\Local\Temp\pip-build-env-swirme89\overlay\Lib\site-packages\setuptools\build_meta.py», строка 364, в _find_info_directory Assert len(candidates) == 1, f"Найдено несколько каталогов с {суффиксом}" ^^^^^^^^^^^^^^^^^^^^^ AssertionError: обнаружено несколько каталогов .egg-info. ошибка: подпроцесс завершен с ошибкой × Подготовка редактируемых метаданных (pyproject.toml) не завершилась успешно. │ код выхода: 1 ╰─> См. вывод выше. Примечание. Эта ошибка возникает в подпроцессе и, скорее всего, не является проблемой pip. полная команда: 'C:\Users\mgua0\venv_mfa\Scripts\python.exe' 'C:\Users\mgua0\venv_mfa\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py'prepre_metadata_for_build_editable 'C:\Users\mgua0\AppData\Local\Temp\tmpxmnvgja0' cwd: F:\pj_tpl Подготовка редактируемых метаданных (pyproject.toml)... ошибка ошибка: не удалось создать метаданные × Обнаружена ошибка при создании метаданных пакета. ╰─> См. вывод выше. Примечание. Это проблема упомянутого выше пакета, а не pip. Подсказка: подробности см. выше. (venv_mfa) PS F:\pj_tpl>