安装syft失败:构建netifaces wheel报错退出代码1如何解决?
问题原因
报错核心是syft的依赖包netifaces需要从源码编译,但当前Windows的编译环境缺少basetsd.h对应的Windows SDK头文件,无法完成编译流程。
解决方案(按优先级从易到难排序)
方案1:直接安装预编译的netifaces(推荐,无需配置编译环境)
直接执行以下命令先安装预编译版本的netifaces,跳过源码编译步骤,再安装syft即可:
# 强制安装预编译版本的netifaces,不使用源码编译 pip install netifaces --only-binary :all: # 确认netifaces安装成功后,执行syft安装 pip install syft
如果上述命令执行失败,可以指定适配Python3.9的版本安装:
pip install netifaces==0.11.0 --only-binary :all:
方案2:补全Visual Studio编译环境
如果你需要从源码编译netifaces,按以下步骤补全编译组件:
- 打开「Visual Studio Installer」,找到已安装的「Visual Studio 2019 生成工具」,点击「修改」
- 在「工作负载」标签页勾选「使用C++的桌面开发」
- 在右侧「可选组件」列表中,勾选适配你系统的Windows 10 SDK(推荐10.0.19041.0及以上版本),以及「C++ ATL for latest v142 build tools(x86 & x64)」
- 点击「修改」等待组件安装完成,重启命令行终端后重新执行syft安装命令即可
方案3:使用conda环境安装
如果你使用conda管理Python环境,可以通过conda安装预编译的netifaces:
# 创建并激活Python3.9环境(已有对应环境可跳过) conda create -n syft_env python=3.9 conda activate syft_env # 先通过conda安装预编译的netifaces conda install netifaces # 再安装syft pip install syft
内容的提问来源于stack exchange,提问作者Mohammad Abbasi
相关产品推荐
相关产品推荐

