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

无法为frozenlist构建wheel:Discord Bot依赖Poetry安装报错

解决frozenlist 1.3.0构建Wheel失败的问题

问题描述

运行依赖Poetry的Discord Bot时,安装依赖遇到以下状况:

  • 最初无法构建multidict的wheel,安装最新版Microsoft Visual C++后该问题解决
  • 但仍无法构建frozenlist 1.3.0的wheel,重装Python后问题依旧
  • 核心错误信息:
frozenlist/_frozenlist.c(7127): error C2037: left of 'f_lineno' specifies undefined struct/union '_frame'

完整错误日志:

Collecting frozenlist==1.3.0
  Using cached frozenlist-1.3.0.tar.gz (65 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: frozenlist
  Building wheel for frozenlist (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for frozenlist (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [39 lines of output]
      **********************
      * Accellerated build *
      **********************
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build\lib.win-amd64-cpython-311
      creating build\lib.win-amd64-cpython-311\frozenlist
      copying frozenlist\__init__.py -> build\lib.win-amd64-cpython-311\frozenlist
      running egg_info
      writing frozenlist.egg-info\PKG-INFO
      writing dependency_links to frozenlist.egg-info\dependency_links.txt
      writing top-level names to frozenlist.egg-info\top_level.txt
      reading manifest file 'frozenlist.egg-info\SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      warning: no previously-included files matching '*.pyc' found anywhere in distribution
      warning: no previously-included files matching '*.pyd' found anywhere in distribution
      warning: no previously-included files matching '*.so' found anywhere in distribution
      warning: no previously-included files matching '*.lib' found anywhere in distribution
      warning: no previously-included files matching '*.dll' found anywhere in distribution
      warning: no previously-included files matching '*.a' found anywhere in distribution
      warning: no previously-included files matching '*.obj' found anywhere in distribution
      warning: no previously-included files found matching 'frozenlist\*.html'
      no previously-included directories found matching 'docs\_build'
      adding license file 'LICENSE'
      writing manifest file 'frozenlist.egg-info\SOURCES.txt'
      copying frozenlist\__init__.pyi -> build\lib.win-amd64-cpython-311\frozenlist
      copying frozenlist\_frozenlist.pyx -> build\lib.win-amd64-cpython-311\frozenlist
      copying frozenlist\py.typed -> build\lib.win-amd64-cpython-311\frozenlist
      running build_ext
      building 'frozenlist._frozenlist' extension
      creating build\temp.win-amd64-cpython-311
      creating build\temp.win-amd64-cpython-311\Release
      creating build\temp.win-amd64-cpython-311\Release\frozenlist
      "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.36.32532\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -IC:\Users\wierd\AppData\Local\Programs\Python\Python311\include -IC:\Users\wierd\AppData\Local\Programs\Python\Python311\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.36.32532\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.36.32532\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\cppwinrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" /Tcfrozenlist/_frozenlist.c /Fobuild\temp.win-amd64-cpython-311\Release\frozenlist/_frozenlist.obj
      _frozenlist.c
      frozenlist/_frozenlist.c(7127): error C2037: left of 'f_lineno' specifies undefined struct/union '_frame'
      error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.36.32532\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for frozenlist
Failed to build frozenlist
ERROR: Failed to build one or more wheels

解决方法

1. 升级frozenlist到兼容版本

frozenlist 1.3.0不支持Python 3.11——Python 3.11对CPython的C API做了变更,导致旧版本的frozenlist无法正确访问_frame结构体成员。升级到1.4.0及以上版本即可解决:

  • 用pip安装:pip install frozenlist>=1.4.0
  • 用Poetry的话,修改pyproject.toml中的依赖为frozenlist = "^1.4.0",然后执行poetry update frozenlist

2. 降级Python版本

如果无法升级frozenlist,可将Python降级到3.10或更低版本,frozenlist 1.3.0在这些版本中可以正常构建。

内容的提问来源于stack exchange,提问作者Wierd Creations

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 01:25:12