403 客户端错误:使用 twine 上传到 Pypi 时身份验证信息无效或不存在

Gav*_*vrk 6 python upload pypi http-status-code-403 twine

403客户端错误:使用Twine上传新模块到pypi时出现无效或不存在的身份验证信息

\n\n

Win10 Pro 1803 Biuld 17134.1069 64 位 // Python 3.7.5 32 位 // pip 19.3.1

\n\n

我成功创建了 tar.gz 和whl。在 dist 文件夹中,通过电子邮件确认在https://pypi.org/上注册并开始上传。

\n\n

我用命令行检查了这两个文件(\'PASSED\')

\n\n

并做了以下事情:

\n\n
Uploading distributions to https://upload.pypi.org/legacy/\nEnter your username: gakonorde\nEnter your password:\nUploading gersyll-Alpha.release-py3-none-any.whl\n100%|\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88| 6.43k/6.43k [00:01<00:00, 5.12kB/s]\nNOTE: Try --verbose to see response content.\nHTTPError: 403 Client Error: Invalid or non-existent authentication information. for url: https://upload.pypi.org/legacy/\n
Run Code Online (Sandbox Code Playgroud)\n\n

命令行不允许我在用户名后输入密码。我只能按 ENTER 键。

\n\n

我也尝试过

\n\n
Password for \'your-username\' in \'https://upload.pypi.org/legacy/\':\n
Run Code Online (Sandbox Code Playgroud)\n\n

...再一次,除了 ENTER 之外,我什么也不能按。

\n\n

然后我使用https://pypi.org/及其测试版本的凭据创建.pypirc文件并再次运行python -m twine upload dist/*

\n\n

没有要求我输入密码,但遇到了同样的错误:

\n\n
Uploading distributions to https://upload.pypi.org/legacy/\nUploading gersyll-Alpha.release-py3-none-any.whl\n100%|\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88| 6.43k/6.43k [00:01<00:00, 5.46kB/s]\nNOTE: Try --verbose to see response content.\nHTTPError: 403 Client Error: Invalid or non-existent authentication information. for url: https://upload.pypi.org/legacy/\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我将.pypirc与 API 令牌结合使用时,问题仍然存在。

\n\n

我可以在https://pypi.org/上输入我的帐户,因此它显然存在(并且电子邮件已验证)。

\n\n

我还添加了第二封电子邮件,进行验证并将其设置为主要电子邮件(没有任何更改)。

\n\n

这是我的 setup.py:

\n\n
import setuptools\n\nwith open("README.md", "r") as fh:\n    long_description = fh.read()\n\nsetuptools.setup(\n    name="gersyll",\n    version="Alpha release",\n    author="gakonorde",\n    author_email="gabrielko@yandex.ru",\n    description="This module counts the number of words of different syllable length for all texts in a directory",\n    long_description=long_description,\n    long_description_content_type="text/markdown",\n    url="https://github.com/gakonorde/gersyll",\n    packages=setuptools.find_packages(),\n    classifiers=[\n        "Programming Language :: Python :: 3.7",\n        "License :: OSI Approved :: MIT License",\n        "Operating System :: OS Independent",\n    ],\n    python_requires=\'>=3.7\',\n)\n
Run Code Online (Sandbox Code Playgroud)\n\n

我究竟做错了什么?

\n\n

任何帮助将不胜感激。

\n\n

编辑: \n.pypirc 文件与 .setup、README、License、dict/ 等位于同一文件夹中。

\n\n

其内容如下:

\n\n
[distutils]\nindex-servers =\n  pypi\n  pypitest\n\n[pypitest]\nrepository: testpypi.python.org/pypi\nusername: gakonorde \npassword: [my_password]\n\n[pypi]\nrepository: upload.pypi.org/legacy\nusername: gakonorde\npassword: [my_password]\n
Run Code Online (Sandbox Code Playgroud)\n

Gav*_*vrk 5

解决了

python -m twine upload -u USERNAME -p PASSWORD dist/*
Run Code Online (Sandbox Code Playgroud)


Dus*_*ram 3

关于密码提示,在输入密码:提示后您将看不到任何输入,因为它隐藏了您的密码。

对于您的.pypirc文件,它应该位于您的主目录 ( ~/.pypirc) 中,而不是与您的文件位于同一目录中setup.py