python - 如何从经过验证的私有 Artifactory PyPI 存储库中提取 Python 包?
问题描述
我正在尝试pip或pipenv安装一个 Python 包,我推送到我的组织在 JFrog Artifactory 上托管的私有 PyPI 存储库。
从Artifactory 文档 http://<username>:<password>@hostname...
中应该可以工作。我已经在Artifact Repository Browser的Set Me Up工具中尝试了我的登录密码以及从中派生的密码。
以下命令要求输入用户名和密码,但我不想从命令行输入它们,因为它们将通过环境变量传递到 CI 管道中。如果我在提示符下键入用户名和密码,那么它可以正常工作。
$ pip search package-name --index https://user:password@organisation.jfrog.io/organisation/api/pypi/pypi/simple
User for organisation.jfrog.io:
$ pip install --extra-index-url https://user:password@organisation.jfrog.io/organisation/api/pypi/pypi/simple package-name
Looking in indexes: https://pypi.org/simple, https://user:password@organisation.jfrog.io/organisation/api/pypi/pypi/simple
Collecting package-name
User for organisation.jfrog.io:
用于curl
尝试 HTTP 身份验证也不起作用。
$ curl -i https://user:password@organisation.jfrog.io/organisation/api/pypi/pypi/simple/
HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=ISO-8859-1
Date: Thu, 26 Apr 2018 18:03:39 GMT
Server: Artifactory/5.10.1
WWW-Authenticate: Basic realm="Artifactory Realm"
X-Artifactory-Id: aolshared3a-organisation
X-Node: nginx2a.prod-euw1
Content-Length: 91
Cache-Control: proxy-revalidate
Connection: Keep-Alive
Set-Cookie: BCSI-CS-a61288137a7d35f7=1; Path=/
{
"errors" : [ {
"status" : 401,
"message" : "Authentication is required"
} ]
}
解决方案
尝试将 --index 替换为 --index-url - 这适用于公共 PyPi 存储库以及符合 PyPi 的替代品,例如CloudRepo(我公司的产品)。
如果这不起作用,请尝试更新您的 pip 版本并使用 --index-url 重试。
推荐阅读
- android - Store (or send) data from Bluetooth device when app is in background
- javascript - Android Studio - Notification from SQLite Database
- javascript - __proto__ 在 javascript 中只显示一个继承
- r - googleAnalyticsR: Advanced segment returns quite smaller result than GA interface
- electron - How to keep running electron app in background when pc is kept sleep?
- r - Make UpSet function display numbers above the bars
- xamarin - Not getting proper status from CrossGeofences.Current.RegionStatusChanged in Xamarin forms
- angular - 如何将列布局拆分到指定空间并使用角星云制作不可滚动的容器
- javascript - 将 div 元素替换为链接
- spring-boot - 如何在spring boot中从属性文件中读取数组表示