在 PyPi 上更新软件包的指南

  • 本文关键字:软件包 更新 PyPi pypi
  • 更新时间 :
  • 英文 :


>我使用本指南在 PyPi 上安装了一个新软件包。

现在,我想更新包。 由于我没有找到这方面的指南,所以我尝试自己做:我将版本从"1.0.0.dev1"更新为"1.0.0.dev2"并重新安装。它不起作用:我得到了:

Uploading tee_table-1.0.0.dev1-py3-none-any.whl
HTTPError: 400 Client Error: File already exists. See https://pypi.org/help/#file-name-reuse for url: https://upload.pypi.org/legacy/

我也读过这个问题,但信息似乎已经过时了(从 2012 年开始(。

有没有一个简单的用户指南来描述如何将新版本的包上传到 PyPi?

我发现了我的问题所在 - 我没有删除 dist 文件夹中的旧文件,因此上传者尝试在新文件之前上传它们,但失败了。解决方案是:

  1. 删除dist文件夹中的所有文件。

  2. 更新setup.py文件中的版本号。

  3. 重新创建轮子:

    python3 setup.py sdist bdist_wheel
    
  4. 重新上传新文件:

    twine upload dist/*
    

抱歉,如果我回复太晚,但遇到了同样的问题,并找到了一种不删除现有dist文件夹的方法:

在 setup.py 中更新版本并重新创建 wheel 文件后,

twine upload --skip-existing dist/*

将跳过已经存在的发行版并上传较新的发行版

对于Windows(我在Windows 10上(,@Erel Segal-Halevi的答案不起作用。跟随对我有用。

c. 重新创建轮子:

py setup.py sdist bdist_wheel

d. 重新上传新文件:

py -m twine upload dist/*

请确保在安装程序中更改了版本: 在此处输入图像描述

,然后使用以下命令:

twine upload --skip-existing dist/*

有关参考,请参阅以下打包库教程:上传 #313。 我对是使用twine upload --repository testpypi dist*来更新包还是twine upload --repository-url URL dist/*更新现有包感到困惑。我不清楚有关该问题的文档。此外,我在使用 API 令牌进行身份验证时遇到了各种问题。对我有用的是以下建议:

存储库的正确 URL 是https://upload.pypi.org/legacy/https://test.pypi.org/legacy/.

因此,如果您希望使用API 令牌更新现有包:

  • pyproject.toml中的项目版本从例如0.0.1更改为0.0.2
  • -m build
  • -m twine upload --repository-url https://upload.pypi.org/legacy/ dist/*
  • 在 PyPi 上生成项目范围的 API 令牌并将其用于身份验证

相关内容

  • 没有找到相关文章

最新更新