Pipenv: Аутентификация дополнительного URL-адреса индекса является интерактивной, даже если она указана

Созданный на 4 дек. 2017  ·  3Комментарии  ·  Источник: pypa/pipenv

Аутентификация для URL-адресов дополнительных индексов требует интерактивной аутентификации пользователя, даже если аутентификация указана в самом URL-адресе дополнительного индекса.

Опишите свое окружение
  1. Arch Linux
  2. Версия Python: Python 3.6.3
  3. Версия Pipenv: pipenv, version 8.3.2
Ожидаемый результат

Когда я добавляю [[source]] с URL-адресом, который содержит информацию для аутентификации (например, https://user:password@host/pypi/simple ), информация для аутентификации запрашиваться не будет.

Фактический результат
$ pipenv lock --verbose
Locking [dev-packages] dependencies…
Using pip: -i https://pypi.python.org/simple --extra-index-url https://xxxUSERxxx:xxxPASSWORDxxx@xxxHOSTxxx/xxxPATHxxx/pypi/simple

                          ROUND 1
Current constraints:
  xxx
  xxx
  xxx

Finding the best candidates:
User for xxxxxxxx:

Затем он ожидает ввода пользователя.

Шаги по воспроизведению
  1. Добавьте [[source]] к Pipfile с URL-адресом, который требует базовой HTTP-аутентификации.
  2. Добавьте в Pipfile пакет, который использует указанный индекс (например, package_name: {version="*", index="index_name"} .
  3. Запустите pipenv lock .

Самый полезный комментарий

К сожалению, это не проблема pipenv ; это происходит даже с обычным pip вне virtualenv.

К вашему сведению, для тех, кто задается вопросом, как использовать частные репозитории pip с CI и докером, вам придется использовать переменную среды PIP_EXTRA_INDEX_URL с аутентификацией. Это можно сделать для локального тестирования с помощью файла .env который не зарегистрирован в VCS, и удаленно с помощью того, что ваш инструмент CI использует для определения переменных среды (обычно в настройках GUI или CLI для репо). Если вы используете docker , вы можете ввести это с помощью --build-arg YOUR_ARG_KEY=$YOUR_ENV_VAR . Я бы добавил это в соответствующий выпуск (№ 1020), но он почему-то был закрыт.

Все 3 Комментарий

К сожалению, это не проблема pipenv ; это происходит даже с обычным pip вне virtualenv.

К вашему сведению, для тех, кто задается вопросом, как использовать частные репозитории pip с CI и докером, вам придется использовать переменную среды PIP_EXTRA_INDEX_URL с аутентификацией. Это можно сделать для локального тестирования с помощью файла .env который не зарегистрирован в VCS, и удаленно с помощью того, что ваш инструмент CI использует для определения переменных среды (обычно в настройках GUI или CLI для репо). Если вы используете docker , вы можете ввести это с помощью --build-arg YOUR_ARG_KEY=$YOUR_ENV_VAR . Я бы добавил это в соответствующий выпуск (№ 1020), но он почему-то был закрыт.

@Californian спасибо за актуальное обновление, добавлю ссылку

@Californian OT здесь, но использовать --build-arg для секретов нецелесообразно . Вы действительно можете узнать секрет из истории сборки; попробуйте docker history <image> и вы увидите это там.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги