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

无法将项目上传至PyPI:setup.py命令执行失败求助

解决PyPI上传失败的问题

看起来你碰到的是旧上传工具被弃用+setup.py配置不规范导致的问题,我帮你一步步梳理解决:

1. 核心问题:废弃的upload命令

首先得明确:setup.py sdist upload这个命令早就被PyPI官方弃用了,现在出于安全要求,必须用twine工具来上传包,旧方式会直接被拒绝,这大概率是你失败的主要原因。

2. 先修正setup.py的配置

你的setup.py内容太简略,缺少必要字段,而且要确保find_packages()能正确识别你的包。调整后的示例如下:

from setuptools import setup, find_packages

setup(
    name='spongebot',
    version='1.0',
    packages=find_packages(),  # 注意:项目根目录下必须有空的__init__.py文件,否则找不到包
    description='Upload a gif of Spongebob',
    # 建议补充这些必填/推荐字段,避免后续校验报错
    author='Your Name',
    author_email='your.email@example.com',
    classifiers=[
        'Programming Language :: Python :: 3',
        'License :: OSI Approved :: MIT License',
        'Operating System :: OS Independent',
    ],
    python_requires='>=3.6',
)

如果你不想加__init__.py,可以把packages=find_packages()改成packages=['spongebot'],直接指定包名。

3. 用twine重新上传的完整步骤

第一步:更新依赖工具

先确保所有打包、上传工具都是最新版:

pip install --upgrade setuptools wheel twine

第二步:构建标准分发包

生成PyPI认可的两种格式包(源码包和wheel包):

python setup.py sdist bdist_wheel

执行后会在项目根目录下生成dist/文件夹,里面就是待上传的包文件。

第三步:用twine上传到测试PyPI

twine upload --repository pypitest dist/*

执行后会提示你输入测试PyPI的用户名和密码,输入正确就能完成上传。

4. 额外排查点

  • 确认你已经在测试PyPI平台注册了账号,且用户名密码无误
  • 如果仍报错,添加--verbose参数查看详细错误日志,方便定位问题:
twine upload --repository pypitest --verbose dist/*

内容的提问来源于stack exchange,提问作者Javier Jiménez de la Jara

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:45:07