即使在额外索引 URL 本身中指定了身份验证,额外索引 URL 的身份验证也会请求用户交互式身份验证。
Python 3.6.3
pipenv, version 8.3.2
当我添加带有身份验证信息的 URL 的[[source]]
时(例如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]]
到需要基本 http 身份验证的 URL 的Pipfile
。Pipfile
添加一个包(例如package_name: {version="*", index="index_name"}
。pipenv lock
。抱歉,这不是pipenv
问题; 即使在 virtualenv 之外使用正常的pip
也会发生这种情况。
仅供参考,对于任何想知道如何在 CI 和 docker 中使用私有pip
库的人,您必须使用PIP_EXTRA_INDEX_URL
环境变量进行身份验证。 这可以使用未签入 VCS 的.env
文件进行本地测试,也可以使用 CI 工具用于环境变量定义的任何内容进行远程测试(通常在存储库的 GUI 或 CLI 设置中)。 如果您使用的是docker
,则可以将其注入--build-arg YOUR_ARG_KEY=$YOUR_ENV_VAR
。 我会将其添加到相关问题 (#1020) 中,但由于某种原因已关闭。
@Californian感谢相关更新,我会添加一个链接
@Californian OT 在这里,但使用--build-arg
作为秘密并不好。 您实际上可以从构建历史中获取秘密; 试试docker history <image>
,你会在那里看到它。
最有用的评论
抱歉,这不是
pipenv
问题; 即使在 virtualenv 之外使用正常的pip
也会发生这种情况。仅供参考,对于任何想知道如何在 CI 和 docker 中使用私有
pip
库的人,您必须使用PIP_EXTRA_INDEX_URL
环境变量进行身份验证。 这可以使用未签入 VCS 的.env
文件进行本地测试,也可以使用 CI 工具用于环境变量定义的任何内容进行远程测试(通常在存储库的 GUI 或 CLI 设置中)。 如果您使用的是docker
,则可以将其注入--build-arg YOUR_ARG_KEY=$YOUR_ENV_VAR
。 我会将其添加到相关问题 (#1020) 中,但由于某种原因已关闭。