Создание пакета Python в Windows завершается с ошибкой: «… python.exe», «-Im», «ensurepip», «--upgrade», «--default-pip»] возвращает ненулевой статус выхода 1».

Я работаю в Windows с ArcGIS Pro и Python, и у меня есть скопированный env conda из ArcGIS Pro. Если я попытаюсь собрать пакет, появится следующая ошибка:

      ERROR Command '['C:\\Users\\...\\AppData\\Local\\Temp\\build-env-lljm30w\\Scripts\\python.exe', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.

Раньше это работало со старой версией ArcGIS Pro, и я думаю, что нашел проблему:

Файл .whl в Lib\ensurepip_bundled — это pip -21.1.3-py3-none-any.whl, а не pip -20.1.1-py2 .py3-none-any.whl.

Это работает, если я вручную скопирую «старый» файл .whl (от коллеги с более старой версией ArcGIS Pro — все еще пытаюсь получить сведения о версии) в каталог, прежде чем я начну процесс сборки.

Поскольку это не может быть решением, я все еще ищу его. Мне нужно что-нибудь обновить? Насколько я понимаю, каталог _bundled не может быть обновлен, поскольку он уже является частью версии Python. Но почему для (интегрированной) версии сборки нужен более старый файл pip.whl?

Может кто-нибудь, пожалуйста, помогите мне.

Python: 3.7.11Arcgis Pro: 2.9.2pip: 22.0.4 сборка: 0.7.0

1 ответ

У меня была аналогичная ситуация: обновите ArcGIS Pro, который впоследствии обновил базовый Python с 3.6 до 3.7.11. Это подорвало мою способность создавать виртуальные среды Python поверх моего Python ArcPro. У меня было то же сообщение об ошибке, что и у вас.

Ваш вопрос помог мне сузить проблему до части уравнения. Я следовал принятому ответу на этой странице , где была зафиксирована аналогичная проблема. Так что пришлось обновить_PIP_VERSIONпеременная, чтобы соответствовать моему.whlфайл; в моем случае это было21.1.3чтобы соответствовать файлуpip-21.1.3-py3-none-any.whl.

Но, кроме того, у нас также естьpy2.py3проблема (чего не сделал ОП другого вопроса). Чтобы исправить это, я отредактировал последний пункт последнего списка в_PROJECTSпеременная, чтобы стать"py3")вместо"py2.py3").

После внесения этих двух изменений я смог установить venv в свой интерпретатор Python на основе ArcGIS.

Итак, строки 12-19 моего__init__.pyдляensurepipтеперь выглядеть так:

      _SETUPTOOLS_VERSION = "47.1.0"

_PIP_VERSION = "21.1.3"  # "20.1.1"

_PROJECTS = [
    ("setuptools", _SETUPTOOLS_VERSION, "py3"),
    ("pip", _PIP_VERSION, "py3"),  # "py2.py3"),
]

Надеюсь это поможет!

Другие вопросы по тегам