使用python setup.py报错:Upload failed (403) / Upload failed (400)

部署运行你感兴趣的模型镜像

当前报错的环境

  • Python 3.9.19
  • twine==1.15.0

本地~/.pypirc已正确配置了用户名和密码,用在pypi.org注册:

[pypi]
  username = skylerhu
  password = ${password}

执行 python setup.py sdist upload -r pypi 打包上传到仓库报错。

在不久之前同样的环境,执行是成功过的。

错误1

执行 python setup.py sdist upload -r pypi

Submitting dist/py-enum-1.1.0.tar.gz to https://upload.pypi.org/legacy/
Upload failed (403): Username/Password authentication is no longer supported. Migrate to API Tokens or Trusted Publishers instead. See https://pypi.org/help/#apitoken and https://pypi.org/help/#trusted-publishers
error: Upload failed (403): Username/Password authentication is no longer supported. Migrate to API Tokens or Trusted Publishers instead. See https://pypi.org/help/#apitoken and https://pypi.org/help/#trusted-publishers

提示用户名、密码的鉴权方式已经不在支持,说是需要创建API Tokens上传包。

根据提示,到用户管理页面 https://pypi.org/manage/account/ 找到配置,按照提示新增了API token.
在这里插入图片描述
需要注意的是创建Token后记得复制保存Token值,一般都是以pypi-开头,复制值后按照提示配置本机.pypirc如下所示,其中__token__是固定写死的:

[pypi]
  username = __token__
  password = pypi-xxxx

参考: https://pypi.org/help/#apitoken

错误2

再次执行报错:

Upload failed (400): Invalid value for blake2_256_digest. Error: Use a valid, hex-encoded, BLAKE2 message digest.
error: Upload failed (400): Invalid value for blake2_256_digest. Error: Use a valid, hex-encoded, BLAKE2 message digest.

原因是distutils (python setup.py工具)已弃用,不应再使用,请使用twine将软件上传到 PyPI。

参考:

  1. https://bugs.python.org/issue45590
  2. https://github.com/pypa/distutils/issues/25
  3. https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html

错误3

改用twine执行 twine upload -r pypi dist/py-enum-xxx.tar.gz 还是报错:

Uploading distributions to https://upload.pypi.org/legacy/
Traceback (most recent call last):
  File "./py-enum/.env3.9/bin/twine", line 8, in <module>
    sys.exit(main())
  File "./py-enum/.env3.9/lib/python3.9/site-packages/twine/__main__.py", line 28, in main
    return dispatch(sys.argv[1:])
  File "./py-enum/.env3.9/lib/python3.9/site-packages/twine/cli.py", line 77, in dispatch
    return main(args.args)
  File "./py-enum/.env3.9/lib/python3.9/site-packages/twine/commands/upload.py", line 137, in main
    return upload(upload_settings, args.dists)
  File "./py-enum/.env3.9/lib/python3.9/site-packages/twine/commands/upload.py", line 65, in upload
    repository = upload_settings.create_repository()
  File "./py-enum/.env3.9/lib/python3.9/site-packages/twine/settings.py", line 288, in create_repository
    repo = repository.Repository(
  File "./py-enum/.env3.9/lib/python3.9/site-packages/twine/repository.py", line 59, in __init__
    self.session.mount(scheme, self._make_adapter_with_retries())
  File "./py-enum/.env3.9/lib/python3.9/site-packages/twine/repository.py", line 65, in _make_adapter_with_retries
    retry = util.Retry(
TypeError: __init__() got an unexpected keyword argument 'method_whitelist'

查找一些资料后,通过pip install -U twine 解决。

执行成功的版本是:twine==5.0.0

解决以上所有错误后,终于成功将包上传到了仓库。

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

ninja: build stopped: subcommand failed. Traceback (most recent call last): File "/usr/local/lib/python3.10/dist-packages/torch/utils/cpp_extension.py", line 2104, in _run_ninja_build subprocess.run( File "/usr/lib/python3.10/subprocess.py", line 526, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command '['ninja', '-v', '-j', '255']' returned non-zero exit status 1. The above exception was the direct cause of the following exception: Traceback (most recent call last): File "<string>", line 2, in <module> File "<pip-setuptools-caller>", line 34, in <module> File "/notebooks/upload/mmcv/setup.py", line 483, in <module> setup( File "/usr/local/lib/python3.10/dist-packages/setuptools/__init__.py", line 155, in setup return distutils.core.setup(**attrs) File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/core.py", line 148, in setup return run_commands(dist) File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/core.py", line 163, in run_commands dist.run_commands() File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/dist.py", line 967, in run_commands self.run_command(cmd) File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/dist.py", line 986, in run_command cmd_obj.run() File "/usr/local/lib/python3.10/dist-packages/setuptools/command/develop.py", line 34, in run self.install_for_development() File "/usr/local/lib/python3.10/dist-packages/setuptools/command/develop.py", line 114, in install_for_development self.run_command('build_ext') File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/cmd.py", line 313, in run_command self.distribution.run_command(command) File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/dist.py", line 986, in run_command cmd_obj.run() File "/usr/local/lib/python3.10/dist-packages/setuptools/command/build_ext.py", line 79, in run _build_ext.run(self) File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/command/build_ext.py", line 339, in run self.build_extensions() File "/usr/local/lib/python3.10/dist-packages/torch/utils/cpp_extension.py", line 868, in build_extensions build_ext.build_extensions(self) File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/command/build_ext.py", line 448, in build_extensions self._build_extensions_serial() File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/command/build_ext.py", line 473, in _build_extensions_serial self.build_extension(ext) File "/usr/local/lib/python3.10/dist-packages/setuptools/command/build_ext.py", line 202, in build_extension _build_ext.build_extension(self, ext) File "/usr/local/lib/python3.10/dist-packages/Cython/Distutils/build_ext.py", line 135, in build_extension super(build_ext, self).build_extension(ext) File "/usr/local/lib/python3.10/dist-packages/setuptools/_distutils/command/build_ext.py", line 528, in build_extension objects = self.compiler.compile(sources, File "/usr/local/lib/python3.10/dist-packages/torch/utils/cpp_extension.py", line 681, in unix_wrap_ninja_compile _write_ninja_file_and_compile_objects( File "/usr/local/lib/python3.10/dist-packages/torch/utils/cpp_extension.py", line 1784, in _write_ninja_file_and_compile_objects _run_ninja_build( File "/usr/local/lib/python3.10/dist-packages/torch/utils/cpp_extension.py", line 2120, in _run_ninja_build raise RuntimeError(message) from e RuntimeError: Error compiling objects for extension error: subprocess-exited-with-error × python setup.py develop did not run successfully. │ exit code: 1 ╰─> See above for output. note: This error originates from a subprocess, and is likely not a problem with pip. full command: /usr/bin/python -c ' exec(compile('"'"''"'"''"'"' # This is <pip-setuptools-caller> -- a caller that pip uses to run setup.py # # - It imports setuptools before invoking setup.py, to enable projects that directly # import from `distutils.core` to work with newer packaging standards. # - It provides a clear error message when setuptools is not installed. # - It sets `sys.argv[0]` to the underlying `setup.py`, when invoking `setup.py` so # setuptools doesn'"'"'t think the script is `-c`. This avoids the following warning: # manifest_maker: standard file '"'"'-c'"'"' not found". # - It generates a shim setup.py, for handling setup.cfg-only projects. import os, sys, tokenize try: import setuptools except ImportError as error: print( "ERROR: Can not execute `setup.py` since setuptools is not available in " "the build environment.", file=sys.stderr, ) sys.exit(1) __file__ = %r sys.argv[0] = __file__ if os.path.exists(__file__): filename = __file__ with tokenize.open(__file__) as f: setup_py_code = f.read() else: filename = "<auto-generated setuptools caller>" setup_py_code = "from setuptools import setup; setup()" exec(compile(setup_py_code, filename, "exec")) '"'"''"'"''"'"' % ('"'"'/notebooks/upload/mmcv/setup.py'"'"',), "<pip-setuptools-caller>", "exec"))' develop --no-deps cwd: /notebooks/upload/mmcv/ [notice] A new release of pip is available: 24.2 -> 25.3 [notice] To update, run: python -m pip install --upgrade pip error: subprocess-exited-with-error × python setup.py develop did not run successfully. │ exit code: 1 ╰─> See above for output. note: This error originates from a subprocess, and is likely not a problem with pip.
最新发布
11-21
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值