我按照官方文档将包上传到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}},并且没有看到我应该使用的替代网站!
这是我的第一个包,我没有在互联网上的其他地方看到这个错误。任何想法:发生了什么?
答案 0 :(得分:0)
前几分钟试图上传一个软件包并遇到了这个问题。 :-)要修复:将pip
,setuptools
和twine
升级到最新版本:
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 文件并通过麻线重新上传。