如何解决PyPi问题

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

相关版本此信息与…有关人工版本4.0.2及以上

在排除PyPI错误时,最好比较一下应该发生的反对你的体制目前经历。你可以通过模拟来消除大量的噪音每一个步骤您的客户端正在接收并检查Artifactory发送给您的HTTP错误代码。

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

  • 403和401身份验证问题,检查授权设置
  • 404未找到资源,请检查存储库中的资源
  • 400错误的请求,使用cURL获取原因短语
  • 50 x服务器问题,检查artifactory.log

使用旋度

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

你可以使用下面的例子,或者代替你特别失败的例子。这样做可以得到关于问题的进一步信息,以及下一步可能采取的步骤。

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

curl -uadmin #Artifactory-username - vvv# verbossy - k# ignore- unsafe - 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

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

这将执行帖子行动,这提交将包裹送到工厂:

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

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

用户添加图片

/简单

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

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

用户添加图片

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