You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

安装pandasai时触发duckdb wheel构建失败的编译错误,请求协助解决

安装pandasai时触发duckdb wheel构建失败的编译错误,请求协助解决

看起来你遇到的是Windows环境下安装pandasai时,依赖的duckdb包编译失败的问题——核心是VS编译工具碰到宏重定义警告后直接终止了编译。我给你几个实际可行的解决思路:


方法1:安装预编译的duckdb包,跳过本地编译

pip有时候会因为找不到对应环境的预编译wheel包,自动尝试从源码编译,这在Windows上很容易出问题。你可以先单独指定安装预编译的duckdb版本,再安装pandasai:

# 先安装兼容的预编译duckdb版本
pip install duckdb==0.10.2 --only-binary :all:

# 再安装pandasai
pip install pandasai

选0.10.2是因为这个版本的预编译包对Windows兼容性比较稳定,你也可以尝试最新稳定版,只要加上--only-binary :all:参数强制用预编译包就行。

方法2:设置编译参数屏蔽宏重定义警告

如果必须从源码编译,可以通过环境变量告诉VS编译工具忽略那个宏重定义的警告(这个警告被当成错误导致了编译失败):

  1. 打开命令提示符(CMD)(不要用PowerShell,环境变量设置逻辑不同)
  2. 先执行这条命令设置编译参数:
    set CL=/wd4005
    
  3. 接着在同一个窗口里执行安装命令:
    pip install pandasai
    

/wd4005的作用就是让编译器忽略C4005号警告,这样就能绕过这个错误继续编译了。

方法3:检查并补全VS Build Tools组件

你的报错里用到了VS 2022 Build Tools,确保你已经安装了完整的C++开发组件:

  • 打开VS Installer,找到「Visual Studio Build Tools 2022」
  • 检查是否勾选了MSVC v143 - VS 2022 C++ x64/x86 build tools和对应的Windows SDK
  • 如果缺失,点击「修改」补装组件,安装完成后重启终端再尝试安装

附上你提供的报错信息供参考:

编译阶段报错:

duckdb/extension/jemalloc/jemalloc/include\jemalloc/internal/jemalloc_internal_macros.h(36): warning C4005: 'restrict': macro redefinition
duckdb/extension/jemalloc/jemalloc/include\jemalloc/internal/jemalloc_internal_decls.h(87): note: see previous definition of 'restrict'
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.43.34808\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2

pip后续报错:

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for duckdb
Running setup.py clean for duckdb
Failed to build duckdb
ERROR: Failed to build installable wheels for some pyproject.toml based projects (duckdb)

备注:内容来源于stack exchange,提问作者Hitesh

火山引擎 最新活动