无法使用Twine上传到PyPi

时间:2017-10-06 13:18:52

标签: python pypi twine

我正在尝试使用以下命令将python包上传到PyPi:

pip install -e .
python setup.py bdist_wheel --universal
twine upload --repository-url https://upload.pypi.org/legacy/ dist/*

我收到此错误:

  

HTTPError:403客户端错误:身份验证信息无效或不存在。对于网址: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

的用户名和密码相同

8 个答案:

答案 0 :(得分:4)

我正在使用的帐户看起来有些错误。以下步骤为我解决了这个问题:

  1. 创建新帐户
  2. 使用twine upload dist/*
  3. 的新帐户上传软件包
  4. 将以前的帐户(您最初想要上传的帐户)添加到包中作为所有者

答案 1 :(得分:3)

我在the pypi instructions for creating a new package之后遇到了这个问题。该教程将指导您上载到他们的测试服务器 (--repository-url https://test.pypi.org/legacy/),我总是得到403。

对于他们的实际上传服务器,(--repository-url https://upload.pypi.org/legacy/)我的凭据可以正常工作。因此,很明显,他们的测试服务器和实时服务器之间的凭据有所不同,如果您遇到此问题,则值得考虑。

答案 2 :(得分:2)

另一种选择可能是复制和粘贴不起作用 - 当我尝试在命令行中粘贴密码时显示此错误,但当我手动输入密码时,它成功了。

答案 3 :(得分:1)

我有同样的问题。对我有用的是(1)添加新电子邮件,进行验证并将其设置为主要电子邮件地址。

答案 4 :(得分:1)

输入密码时,密码没有错,我认为这是一个错误。

我直接使用-u作为用户名,-p作为密码,而不使用控制台提供的字段(默认)。

我尝试在以下命令中运行此命令:twine upload -u YOUR-USERNAME -p YOUR-PASSWORD - repository-url https://test.pypi.org/legacy/ dist / *

I run that command on windows

对我有用。希望这会有所帮助

答案 5 :(得分:1)

在 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/*

答案 6 :(得分:0)

对我来说,麻烦在于需要在TestPyPi上创建一个与PyPi相同的帐户。

PyPi和TestPyPi是包索引的单独实例,它们具有单独的用户数据库。因此,必须创建单独的帐户。

(抱怨,抱怨,禅宗的python,抱怨...)

答案 7 :(得分:0)

手动输入密码。似乎很蠢,但对我有用。