400错误:上传新的PyPI包时无效的URI(twine)

时间:2017-07-07 02:42:12

标签: python pypi twine

我按照官方文档将包上传到PyPI,以及PyPI自述文件中提供的信息,但每次都会收到HTTP 400错误:

[distutils]
index-servers =
  pypi
  pypitest

[pypi]
username=bradaallen
password=[password]

[pypitest]
username=bradaallen
password=[password]

我正在使用〜/ .pypirc

twine version 1.9.1 (pkginfo: 1.4.1, requests: 2.12.4, setuptools: 27.2.0, requests-toolbelt: 0.8.0, tqdm: 4.14.0)

对于包,我使用的是python setup.py sdist bdist_wheel upload

当我使用Submitting dist\brad_nlp_helpers-0.1.1.tar.gz to https://upload.pypi.org/legacy/ Upload failed (400): home_page: Invalid URI error: Upload failed (400): home_page: Invalid URI 时,我会遇到同样的问题:

404 error

我没有指定存储库,因为这是API在上传时提供的建议。我在PyPI建议的链接上看到{{1}},并且没有看到我应该使用的替代网站!

这是我的第一个包,我没有在互联网上的其他地方看到这个错误。任何想法:发生了什么?

3 个答案:

答案 0 :(得分:0)

前几分钟试图上传一个软件包并遇到了这个问题。 :-)要修复:将pipsetuptoolstwine升级到最新版本:

pip install -U pip setuptools twine

~/.pypirc删除或注释掉存储库:

[distutils]
index-servers =
    pypi

[pypi]
#repository: 
username: …

twine upload现在有效!

答案 1 :(得分:0)

惊人。我还在Twine's GitHub page上发布了这个问题。

事实证明setup.py文件中的URL应该与托管代码的位置相对应(这是有道理的)。我把我的个人网站作为URL,我想仓库的单元测试拒绝了我......它现在已经上传了。

再次感谢@phd!

答案 2 :(得分:-1)

当您在 setup.py 中使用 README.md 文件作为 long_description 时,某些字符串(例如“.*”)在 PyPI 中不支持。因此,需要将它们删除并重建 WHL 文件并通过麻线重新上传。