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

M1 Mac环境下pip安装thriftpy2时wheel构建失败求助

解决M1 Mac上pip安装thriftpy2的wheel构建失败问题

问题描述

执行pip install thriftpy2时出现wheel构建失败,核心错误为:

AssertionError: 将构建带有不支持标签('cp310', 'cp310', 'macosx_11_0_arm64')的wheel

环境信息

CPU: M1(10核64位westmere)
Clang: 14.0.0 build 1400
Git: 2.41.0 => /usr/local/bin/git
Curl: 7.79.1 => /usr/bin/curl
macOS: 12.5.1-x86_64
CLT: 14.2.0.0.1.1668646533
Xcode: 未安装
Rosetta 2: 已启用
Python 3.10.8
Conda 23.5.0

错误详情

为收集到的包构建wheel:thriftpy2
  为thriftpy2构建wheel(setup.py)... 错误
  error: subprocess-exited-with-error
  
  × python setup.py bdist_wheel执行失败。
  │ 退出码:1
  ╰─> [277行输出]
      运行bdist_wheel
      [wheel]配置段已弃用,请改用[bdist_wheel]。
      运行build
      运行build_py
      创建build目录
      创建build/lib.macosx-11.0-arm64-cpython-310
      创建build/lib.macosx-11.0-arm64-cpython-310/thriftpy2
      复制thriftpy2/server.py -> build/lib.macosx-11.0-arm64-cpython-310/thriftpy2
      ...(中间文件复制步骤省略)
      运行build_ext
      构建'thriftpy2.transport.cybase'扩展
      ...(中间编译步骤省略)
      ld: 警告:-pie被忽略,它仅在链接主可执行文件时使用
      ...(其他扩展构建步骤省略)
      ~/anaconda3/envs/mtbi-python/lib/python3.10/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install已弃用。
      !!
      
              ********************************************************************************
              请避免直接运行``setup.py``。
              请改用pypa/build、pypa/installer或其他基于标准的工具。
      
              详情请见https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html。
              ********************************************************************************
      
      !!
        self.initialize_options()
      安装到build/bdist.macosx-11.0-arm64/wheel
      运行install
      运行install_lib
      ...(中间文件复制步骤省略)
      运行install_egg_info
      复制thriftpy2.egg-info到build/bdist.macosx-11.0-arm64/wheel/thriftpy2-0.4.16-py3.10.egg-info
      运行install_scripts
      回溯(最近的调用最后):
        文件"<string>", 第2行, 在<module>中
        文件"<pip-setuptools-caller>", 第34行, 在<module>中
        文件"/private/var/folders/rx/2h26x2c17dq3ntcr8g9dl67r0000gn/T/pip-install-hw7ktz0x/thriftpy2_071a76a186d743c88526c39c0fa8cfb9/setup.py", 第76行, 在<module>中
          setup(name="thriftpy2",
        文件"~/anaconda3/envs/mtbi-python/lib/python3.10/site-packages/setuptools/__init__.py", 第107行, 在setup中
          return distutils.core.setup(**attrs)
        文件"~/anaconda3/envs/mtbi-python/lib/python3.10/site-packages/setuptools/_distutils/core.py", 第185行, 在setup中
          return run_commands(dist)
        文件"~/anaconda3/envs/mtbi-python/lib/python3.10/site-packages/setuptools/_distutils/core.py", 第201行, 在run_commands中
          dist.run_commands()
        文件"~/anaconda3/envs/mtbi-python/lib/python3.10/site-packages/setuptools/_distutils/dist.py", 第969行, 在run_commands中
          self.run_command(cmd)
        文件"~/anaconda3/envs/mtbi-python/lib/python3.10/site-packages/setuptools/dist.py", 第1244行, 在run_command中
          super().run_command(command)
        文件"~/anaconda3/envs/mtbi-python/lib/python3.10/site-packages/setuptools/_distutils/dist.py", 第988行, 在run_command中
          cmd_obj.run()
        文件"~/anaconda3/envs/mtbi-python/lib/python3.10/site-packages/wheel/bdist_wheel.py", 第328行, 在run中
          impl_tag, abi_tag, plat_tag = self.get_tag()
        文件"~/anaconda3/envs/mtbi-python/lib/python3.10/site-packages/wheel/bdist_wheel.py", 第278行, 在get_tag中
          assert tag in supported_tags, "would build wheel with unsupported tag {}".format(tag)
      AssertionError: 将构建带有不支持标签('cp310', 'cp310', 'macosx_11_0_arm64')的wheel
      [输出结束]
  
  note: 该错误源自子进程,大概率不是pip的问题。
  ERROR: 构建thriftpy2的wheel失败
  为thriftpy2运行setup.py clean
构建thriftpy2失败
ERROR: 无法为thriftpy2构建wheel,这是安装基于pyproject.toml的项目所必需的。

解决方案

方案1:通过Rosetta 2切换x86_64架构安装

利用已启用的Rosetta 2,强制以x86_64架构运行pip:

arch -x86_64 pip install thriftpy2

如果使用conda环境,先激活目标环境后执行上述命令;或直接创建x86_64架构的conda环境:

conda create -n x86_env python=3.10
conda activate x86_env
arch -x86_64 pip install thriftpy2

方案2:指定兼容的wheel平台标签

手动指定适配x86_64的平台标签,绕过自动检测问题:

pip install thriftpy2 --platform macosx_10_9_x86_64 --only-binary=:all:

方案3:升级依赖后重试

先更新pip、setuptools和wheel到最新版本,再尝试安装:

pip install --upgrade pip setuptools wheel
pip install thriftpy2

原因说明

thriftpy2官方未提供适配M1芯片arm64架构的预编译wheel包,且其构建脚本在arm64环境下生成的平台标签不被当前wheel版本支持,通过切换x86_64架构或指定兼容标签可解决该问题。

内容的提问来源于stack exchange,提问作者Long.zhao

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 03:57:00