无法使用 Twine 上传到 PyPi
Can't upload to PyPi with Twine
我正在尝试使用以下命令将 python 包上传到 PyPi:
pip install -e .
python setup.py bdist_wheel --universal
twine upload --repository-url https://upload.pypi.org/legacy/ dist/*
我收到这个错误:
HTTPError: 403 Client Error: Invalid or non-existent authentication information. for url: https://upload.pypi.org/legacy/
我还尝试了以下命令:
twine upload dist/*
twine upload --repository-url pypi dist/*
twine upload --repository-url https://upload.pypi.org/legacy dist/*
python setup.py bdist_wheel --universal upload
我在同一目录中有一个 .pypirc 文件 运行 命令是:
[distutils]
index-servers =
pypi
pypitest
[pypitest]
repository: https://testpypi.python.org/pypi/
username: <username>
password: <password>
[pypi]
repository: https://upload.pypi.org/legacy/
username: <username>
password: <password>
但我仍然被要求输入密码。
(也使用 pypitest 尝试过,在上面创建了一个帐户之后,但是得到了同样的错误)
我也试过做同样的事情,但删除了存储库行。
我要上传的包名曾经被占用,现在已经被删除了-https://pypi.python.org/pypi?name=&version=1.0.0&:action=display说找不到包
我使用的用户名和密码与我成功登录 https://pypi.python.org/pypi?%3Aaction=login_form
时使用的用户名和密码相同
编辑:如果您使用的是Windows,请检查
我使用的帐户似乎出现了某种错误。以下步骤为我修复了它:
- 创建一个新帐户
- 用
twine upload dist/*
用新账号上传包
- 将之前的帐户(您最初想要上传的帐户)作为所有者添加到包中
另请注意,测试 pypi 服务器 --repository-url https://test.pypi.org/legacy/
,需要从实时服务器 --repository-url https://upload.pypi.org/legacy/
创建一个不同的帐户
另一种可能是复制和粘贴不起作用 - 当我尝试在命令行中粘贴密码时它显示此错误,但当我手动输入时它成功了。
编辑:看起来这是在 Windows 上粘贴的一个已知问题,请参阅 [=11 上的建议=]:
If you're using Windows and trying to paste your password or token in the Command Prompt or PowerShell, note that Ctrl-V and Shift+Insert won't work. Instead, you can use "Edit > Paste" from the window menu, or enable "Use Ctrl+Shift+C/V as Copy/Paste" in "Properties". This is a known issue with Python's getpass module.
我遇到了同样的问题。对我有用的是 (1) 添加新电子邮件,验证它并使其成为主要电子邮件。
我在 the pypi instructions for creating a new package 之后遇到了这个问题。该教程将带您完成上传到他们的测试服务器
(--repository-url https://test.pypi.org/legacy/
),为此我总是得到 403。
对于他们实际的上传服务器,(--repository-url https://upload.pypi.org/legacy/
) 我的凭据工作正常。很明显,他们的测试服务器和实时服务器之间的凭据存在一些差异,如果您遇到这个问题,这可能值得考虑。
PyPi 和 TestPyPi 是包索引的独立实例,它们具有独立的用户数据库。因此,必须创建单独的帐户。
也许你会走运,测试帐户名不会被占用,你可以在测试中使用与生产中相同的命令。
(牢骚,牢骚,python,牢骚....)
当我们输入密码时,密码没有错,我认为是一个错误。
我直接使用 -u
作为用户名和 -p
作为密码,而不使用控制台提供的字段(默认)。
我尝试在命令中运行这个:
twine upload -u YOUR-USERNAME -p YOUR-PASSWORD --repository-url https://test.pypi.org/legacy/ dist/*
我 运行 windows 上的命令:
对我有用。希望这会有所帮助。
手动输入密码。看起来很愚蠢,但对我有用。
我在 ubuntu 20.04 机器上遇到了同样的错误。由此我发现了一些东西
- 我使用的是 vs code 集成终端,它使用的是 zsh 而不是 bash
然后我使用我的系统终端,它对我来说工作正常。
还要确保您已正确配置 setup.py。
在 PyPI 和 TestPyPI 中验证帐户 并使用凭证(usr1
、pwd1
)和(usr2
、pwd2
) 分别为 ~/.pypi
:
的内容
[distutils]
index-servers=
pypi
testpypi
[pypi]
repository: https://upload.pypi.org/legacy/
username: usr1
password: pwd1
[testpypi]
repository: https://test.pypi.org/legacy/
username: usr2
password: pwd2
构建包后,为 TestPyPI 发布:
twine upload --repository testpypi dist/*
PyPI 发布:
twine upload --repository pypi dist/*
我上传了一个项目,但是当我在 pypi 网站上查看时,它缺少 readme.md 文件。我不知道如何更新,所以我删除了该项目,尽管接受了一些警告。
最后,我添加了 readme.md 文件并尝试再次上传项目,但出现此错误。所以,我前往 pypi 网站并完全删除了我上传的最后一个项目。之后我就可以用同一个帐户上传了。希望这有效
好吧,我觉得这很愚蠢,但这是我用来上传我的一个低效的解决方案。
在你的编辑器中输入类似这样的内容
__token__
yourTokenHere
然后使用 Ctrl + V
将其粘贴到用户名字段
此外,我发现 Windows + V 对获取我的剪贴板历史记录很有用。
我正在尝试使用以下命令将 python 包上传到 PyPi:
pip install -e .
python setup.py bdist_wheel --universal
twine upload --repository-url https://upload.pypi.org/legacy/ dist/*
我收到这个错误:
HTTPError: 403 Client Error: Invalid or non-existent authentication information. for url: https://upload.pypi.org/legacy/
我还尝试了以下命令:
twine upload dist/*
twine upload --repository-url pypi dist/*
twine upload --repository-url https://upload.pypi.org/legacy dist/*
python setup.py bdist_wheel --universal upload
我在同一目录中有一个 .pypirc 文件 运行 命令是:
[distutils]
index-servers =
pypi
pypitest
[pypitest]
repository: https://testpypi.python.org/pypi/
username: <username>
password: <password>
[pypi]
repository: https://upload.pypi.org/legacy/
username: <username>
password: <password>
但我仍然被要求输入密码。 (也使用 pypitest 尝试过,在上面创建了一个帐户之后,但是得到了同样的错误)
我也试过做同样的事情,但删除了存储库行。
我要上传的包名曾经被占用,现在已经被删除了-https://pypi.python.org/pypi?name=&version=1.0.0&:action=display说找不到包
我使用的用户名和密码与我成功登录 https://pypi.python.org/pypi?%3Aaction=login_form
时使用的用户名和密码相同编辑:如果您使用的是Windows,请检查
我使用的帐户似乎出现了某种错误。以下步骤为我修复了它:
- 创建一个新帐户
- 用
twine upload dist/*
用新账号上传包
- 将之前的帐户(您最初想要上传的帐户)作为所有者添加到包中
另请注意,测试 pypi 服务器 --repository-url https://test.pypi.org/legacy/
,需要从实时服务器 --repository-url https://upload.pypi.org/legacy/
另一种可能是复制和粘贴不起作用 - 当我尝试在命令行中粘贴密码时它显示此错误,但当我手动输入时它成功了。
编辑:看起来这是在 Windows 上粘贴的一个已知问题,请参阅 [=11 上的建议=]:
If you're using Windows and trying to paste your password or token in the Command Prompt or PowerShell, note that Ctrl-V and Shift+Insert won't work. Instead, you can use "Edit > Paste" from the window menu, or enable "Use Ctrl+Shift+C/V as Copy/Paste" in "Properties". This is a known issue with Python's getpass module.
我遇到了同样的问题。对我有用的是 (1) 添加新电子邮件,验证它并使其成为主要电子邮件。
我在 the pypi instructions for creating a new package 之后遇到了这个问题。该教程将带您完成上传到他们的测试服务器
(--repository-url https://test.pypi.org/legacy/
),为此我总是得到 403。
对于他们实际的上传服务器,(--repository-url https://upload.pypi.org/legacy/
) 我的凭据工作正常。很明显,他们的测试服务器和实时服务器之间的凭据存在一些差异,如果您遇到这个问题,这可能值得考虑。
PyPi 和 TestPyPi 是包索引的独立实例,它们具有独立的用户数据库。因此,必须创建单独的帐户。
也许你会走运,测试帐户名不会被占用,你可以在测试中使用与生产中相同的命令。
(牢骚,牢骚,python,牢骚....)
当我们输入密码时,密码没有错,我认为是一个错误。
我直接使用 -u
作为用户名和 -p
作为密码,而不使用控制台提供的字段(默认)。
我尝试在命令中运行这个:
twine upload -u YOUR-USERNAME -p YOUR-PASSWORD --repository-url https://test.pypi.org/legacy/ dist/*
我 运行 windows 上的命令:
对我有用。希望这会有所帮助。
手动输入密码。看起来很愚蠢,但对我有用。
我在 ubuntu 20.04 机器上遇到了同样的错误。由此我发现了一些东西
- 我使用的是 vs code 集成终端,它使用的是 zsh 而不是 bash
然后我使用我的系统终端,它对我来说工作正常。
还要确保您已正确配置 setup.py。
在 PyPI 和 TestPyPI 中验证帐户 并使用凭证(usr1
、pwd1
)和(usr2
、pwd2
) 分别为 ~/.pypi
:
[distutils]
index-servers=
pypi
testpypi
[pypi]
repository: https://upload.pypi.org/legacy/
username: usr1
password: pwd1
[testpypi]
repository: https://test.pypi.org/legacy/
username: usr2
password: pwd2
构建包后,为 TestPyPI 发布:
twine upload --repository testpypi dist/*
PyPI 发布:
twine upload --repository pypi dist/*
我上传了一个项目,但是当我在 pypi 网站上查看时,它缺少 readme.md 文件。我不知道如何更新,所以我删除了该项目,尽管接受了一些警告。 最后,我添加了 readme.md 文件并尝试再次上传项目,但出现此错误。所以,我前往 pypi 网站并完全删除了我上传的最后一个项目。之后我就可以用同一个帐户上传了。希望这有效
好吧,我觉得这很愚蠢,但这是我用来上传我的一个低效的解决方案。
在你的编辑器中输入类似这样的内容
__token__
yourTokenHere
然后使用 Ctrl + V
将其粘贴到用户名字段
此外,我发现 Windows + V 对获取我的剪贴板历史记录很有用。