You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法在PyPI.org更新maildiff包,上传返回200 OK但无效果

问题分析与解决方案

我于2015年提交了maildiff包,如今为其添加了PyPI的Markdown支持,并更新setup.py以适配pip 10。但现在遇到一个异常问题:执行以下命令时:

python setup.py sdist upload -r http://pypi.org
Password: # 我输入密码
Submitting dist/maildiff-1.2.1.tar.gz to http://pypi.org
Server response (200): OK

PyPI上的包并未更新。更奇怪的是,即使输入错误密码,我仍会收到相同的提示:

Submitting dist/maildiff-1.2.1.tar.gz to http://pypi.org
Server response (200): OK

问题根源

这是因为**python setup.py upload命令已经被PyPI官方弃用**了!旧上传方式的HTTP认证逻辑已经跟不上PyPI当前的安全要求,导致即使密码错误或请求无效,服务器也会返回200状态码,但实际上并没有完成包的上传操作。

解决步骤

你需要改用官方推荐的twine工具来上传包,步骤如下:

  1. 安装twine
    先确保环境中安装了twine:

    pip install twine
    
  2. 重新构建分发包(可选但推荐)
    为确保上传的是最新版本的包,重新执行构建命令:

    python setup.py sdist
    
  3. 使用twine上传包
    用twine代替旧的upload命令,它会正确处理HTTPS和身份验证:

    twine upload dist/maildiff-1.2.1.tar.gz
    

    执行后twine会明确提示你输入PyPI用户名和密码,只有验证通过才会真正完成上传,不会再出现错密码也返回成功的情况。

  4. 检查仓库地址(重要)
    注意:PyPI官方上传地址现在是https://upload.pypi.org/legacy/,你之前用的http://pypi.org会被重定向,但旧工具无法正确处理重定向后的上传流程。twine默认使用正确的HTTPS地址,无需额外指定-r参数,除非配置了自定义仓库。

这样应该就能成功更新PyPI上的maildiff包了!

内容的提问来源于stack exchange,提问作者Ciasto piekarz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:09:47