无法使用Twine上传到PyPi

ECH*_*ECH 10 python pypi twine

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

pip install -e .
python setup.py bdist_wheel --universal
twine upload --repository-url https://upload.pypi.org/legacy/ dist/*
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

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
Run Code Online (Sandbox Code Playgroud)

与位于同一目录中的.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>
Run Code Online (Sandbox Code Playgroud)

但是我仍然被要求输入密码。(也在那里也创建了帐户后,也使用pypitest尝试了此操作,但收到相同的错误)

我也尝试过相同的操作,但是删除了存储库行。

我尝试上传的软件包名称曾经被占用,但现在已被删除-https: //pypi.python.org/pypi? name =&version=1.0.0& : action=display表示该软件包没有发现

我使用的用户名和密码与成功登录https://pypi.python.org/pypi?%3Aaction=login_form所使用的用户名和密码相同

Lor*_*sum 7

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

也许您会很幸运,测试帐户名称不会被占用,您可以在测试中使用与生产中相同的命令。

(抱怨,抱怨,蟒蛇禅,抱怨......)


ECH*_*ECH 6

我使用的帐户似乎出现某种错误。以下步骤为我修复了此问题:

  1. 创建一个新账户
  2. 使用的新帐户上传软件包 twine upload dist/*
  3. 将先前的帐户(您最初想与之一起上传)作为所有者添加到软件包中

另请注意,测试pypi服务器--repository-url https://test.pypi.org/legacy/需要从实时服务器创建其他帐户--repository-url https://upload.pypi.org/legacy/

  • 你好!我遵循了你的答案,但是当我运行 `twine upload dist/*` 时,我得到:`HTTPError: 403 Forbidden from https://upload.pypi.org/legacy/ 无效或不存在的身份验证信息。有关更多信息,请参阅 https://pypi.org/help/#invalid-auth。`。你能告诉我出了什么问题吗?谢谢。 (3认同)

Muh*_*m C 6

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

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

我尝试在命令中运行它:

twine upload -u YOUR-USERNAME -p YOUR-PASSWORD --repository-url https://test.pypi.org/legacy/ dist/*
Run Code Online (Sandbox Code Playgroud)

我在 Windows 上运行该命令:

命令图片

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

  • 这是*非常*危险的。任何有权访问您的命令行历史记录的人都可以看到您的密码。 (4认同)

ECH*_*ECH 5

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

编辑:看起来这是在Windows上粘贴的一个已知问题,请参阅https://pypi.org/help/#invalid-auth 上的建议:

如果您使用的是 Windows 并尝试在命令提示符或 PowerShell 中粘贴您的密码或令牌,请注意 Ctrl-V 和 Shift+Insert 将不起作用。相反,您可以使用窗口菜单中的“编辑 > 粘贴”,或在“属性”中启用“使用 Ctrl+Shift+C/V 作为复制/粘贴”。这是Python 的 getpass 模块的一个已知问题


thc*_*ark 5

按照创建新包的 pypi 说明遇到了这个问题。该教程将带您上传到他们的测试服务器 ( --repository-url https://test.pypi.org/legacy/),为此我总是收到 403。

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