Аутентификация для URL-адресов дополнительных индексов требует интерактивной аутентификации пользователя, даже если аутентификация указана в самом URL-адресе дополнительного индекса.
Python 3.6.3
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:
Затем он ожидает ввода пользователя.
[[source]]
к Pipfile
с URL-адресом, который требует базовой HTTP-аутентификации.Pipfile
пакет, который использует указанный индекс (например, package_name: {version="*", index="index_name"}
.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), но он почему-то был закрыт.
@Californian спасибо за актуальное обновление, добавлю ссылку
@Californian OT здесь, но использовать --build-arg
для секретов нецелесообразно . Вы действительно можете узнать секрет из истории сборки; попробуйте docker history <image>
и вы увидите это там.
Самый полезный комментарий
К сожалению, это не проблема
pipenv
; это происходит даже с обычнымpip
вне virtualenv.К вашему сведению, для тех, кто задается вопросом, как использовать частные репозитории
pip
с CI и докером, вам придется использовать переменную средыPIP_EXTRA_INDEX_URL
с аутентификацией. Это можно сделать для локального тестирования с помощью файла.env
который не зарегистрирован в VCS, и удаленно с помощью того, что ваш инструмент CI использует для определения переменных среды (обычно в настройках GUI или CLI для репо). Если вы используетеdocker
, вы можете ввести это с помощью--build-arg YOUR_ARG_KEY=$YOUR_ENV_VAR
. Я бы добавил это в соответствующий выпуск (№ 1020), но он почему-то был закрыт.