无法将项目上传至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
相关产品推荐
相关产品推荐

