Создание пакета 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"),
]
Надеюсь это поможет!