如何排除PyPi问题

帕特里克·罗素
2023-01-22 11:09

相关版本:这个信息与…有关Artifactory 4.0.2及以上版本

在排除PyPI错误时,最好比较一下是什么应该发生的反对你的系统目前经历.通过模拟可以消除大量的噪声每一个步骤您的客户端正在检查Artifactory发送给您的HTTP错误代码。

一般来说,这些是错误代码你接下来可能会遇到的问题,以及你应该从哪里寻找答案/解决方案:

  • 403和401:身份验证问题,检查授权设置
  • 404:资源未找到,请检查存储库是否有资源
  • 400:不正确的请求,使用cURL获取原因短语
  • 50 x:服务器问题,检查artifact .log

使用旋度

libcurl终端应用程序可以使基本REST API命令,例如GET或PUT选项。Artifactory的请求日志显示PyPi客户端使用的确切API命令,您可以根据这个日志文件确定要运行的确切命令。

你可以使用下面的例子,或者用一个特别不适合你的例子代替。这样做应该会得到关于问题的进一步信息,以及可能的下一步措施。

cURL的基本用法(带#comments):

curl -uadmin #Artifactory-username -vvv #verbosy -k #ignore-insecure-SSL -XGET #GET-request http://localhost:8081/artifactory/api/system/ping

cURL默认使用GET请求。其他命令,比如,要求字段,以及(通常是JSON)数据有效负载。PUT命令示例:

curl -uadmin:password -XPUT -H"Content-type: Application/json"——data " {"name":"test-group"}' http://localhost:8081/artifactory/api/security/groups/test-group . curl -uadmin:password -XPUT -H"Content-type: Application/json

pip安装

方法安装给定的包时皮普的客户,您将使用PyPI REST API下载该包。本文将解释PyPi REST API,它通常不手动使用。当试图通过Artifactory安装包时,客户端执行几个操作。输入以下命令后,该过程开始执行:
PIP安装nginxctl

之后,客户机将从/简单的API端点:

538 | 20180524093654 | | 127.0.0.1请求匿名| | | / api / pypi / pypi /简单/ nginxctl / HTTP / 1.1 | 200 | 0 |

使用此元数据,客户机将下载gz文件:

1412 | 20180524093656 | | 127.0.0.1请求匿名| | | / api / pypi pypi /包/ 72/45/936e0805da71fcaf0e5a1f9256f757f5fa95057e391687ba067ef2d52926 / nginxctl-1.1.2.tar.gz HTTP / 1.1 | 200 | 17024 |

然后客户端将从下载的包中安装gz。

部署包:

当你配置了一个给定的包.pypirc指向Artifactory,然后您可以运行以下命令来启动它的部署:

Python setup.py sdist upload -r local——或——Python setup.py bdist_wheel upload -r local

这将执行帖子行动,这提交包装到Artifactory:

| 10499 | 20180524094126 |请求127.0.0.1 |管理|发布| / api / pypi / pypi HTTP / 1.1 | 200 | 3357 |

这取决于你是否指定了Python轮或者一个简单的包上传,你会在你的PyPI本地存储库中看到部署文件:

用户添加图片

/简单

用户添加图片
在Artifactory中,PyPI包元数据可在您的/ api / pypi / < PyPi_Repo > /简单/文件夹中。你可以去看这个URL在您的web浏览器中查看是否有问题获取PyPI包元数据:

可以跟随与PyPi包名称匹配的超链接,您应该可以看到包的底层版本:

用户添加图片

如果你点击其中一个*.tar.gz超链接,你的网络浏览器就会下载这个包。pip客户端正在做同样的事情,只是缺少了web浏览器!