安装trajectory-planning-helpers时quadprog编译wheel失败求助
安装trajectory-planning-helpers时quadprog编译wheel失败的解决方案
问题描述
执行命令pip install trajectory-planning-helpers安装trajectory-planning-helpers模块时,遭遇quadprog编译wheel失败,核心报错为:
C:\Python310\include\pyconfig.h(200): fatal error C1083: Cannot open include file: 'basetsd.h': No such file or directory
当前使用Python版本为3.10.10,已尝试以下方法但未解决:
- 使用Python 3.10和3.11版本的虚拟环境;
- 在Python 3.11环境下下载Microsoft SDK及相关工具。
完整报错信息:
python setup.py bdist_wheel did not run successfully. │ exit code: 1 ╰─> [32 lines of output] running bdist_wheel running build running build_ext C:\Python310\lib\site-packages\Cython\Compiler\Main.py:388: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: C:\Users\User\AppData\Local\Temp\pip-install-1lt9e5l1\quadprog_6fa3226523604b288e1cc1c083587a6a\quadprog\quadprog.pyx tree = Parsing.p_module(s, pxd, full_module_name) Compiling quadprog/quadprog.pyx because it changed. [1/1] Cythonizing quadprog/quadprog.pyx building 'quadprog' extension creating build creating build\temp.win-amd64-cpython-310 creating build\temp.win-amd64-cpython-310\Release creating build\temp.win-amd64-cpython-310\Release\quadprog "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -Iquadprog -IC:\Python310\include -IC:\Python310\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" /Tcquadprog/aind.c /Fobuild\temp.win-amd64-cpython-310\Release\quadprog/aind.obj aind.c "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -Iquadprog -IC:\Python310\include -IC:\Python310\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" /Tcquadprog/daxpy.c /Fobuild\temp.win-amd64-cpython-310\Release\quadprog/daxpy.obj daxpy.c "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -Iquadprog -IC:\Python310\include -IC:\Python310\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" /Tcquadprog/ddot.c /Fobuild\temp.win-amd64-cpython-310\Release\quadprog/ddot.obj ddot.c "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -Iquadprog -IC:\Python310\include -IC:\Python310\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" /Tcquadprog/dpofa.c /Fobuild\temp.win-amd64-cpython-310\Release\quadprog/dpofa.obj dpofa.c "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -Iquadprog -IC:\Python310\include -IC:\Python310\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" /Tcquadprog/dscal.c /Fobuild\temp.win-amd64-cpython-310\Release\quadprog/dscal.obj dscal.c "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -Iquadprog -IC:\Python310\include -IC:\Python310\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" /Tcquadprog/f2c_lite.c /Fobuild\temp.win-amd64-cpython-310\Release\quadprog/f2c_lite.obj f2c_lite.c quadprog/f2c_lite.c(48): warning C4244: 'function': conversion from 'double' to 'float', possible loss of data quadprog/f2c_lite.c(134): warning C4244: 'return': conversion from 'double' to 'float', possible loss of data quadprog/f2c_lite.c(182): warning C4244: 'return': conversion from 'double' to 'integer', possible loss of data quadprog/f2c_lite.c(545): warning C4244: '=': conversion from 'double' to 'float', possible loss of data "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -Iquadprog -IC:\Python310\include -IC:\Python310\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" /EHsc /Tpquadprog/quadprog.cpp /Fobuild\temp.win-amd64-cpython-310\Release\quadprog/quadprog.obj quadprog.cpp C:\Python310\include\pyconfig.h(200): fatal error C1083: Cannot open include file: 'basetsd.h': No such file or directory error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.29.30133\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2
错误原因
basetsd.h是Windows SDK中的标准头文件,当前编译环境使用的Windows Kits版本(10.0.10240.0)过于老旧,或者SDK未正确安装、配置,导致编译工具无法找到该文件。
解决方法
1. 更新Windows SDK到最新版本
- 打开Visual Studio Installer,选择已安装的"Visual Studio Build Tools 2019",点击"修改"。
- 在"单个组件"中找到"Windows 10 SDK"或"Windows 11 SDK",勾选最新版本(如10.0.22000.0及以上),完成安装。
2. 使用正确的VS命令行环境编译
- 打开"x64 Native Tools Command Prompt for VS 2019",激活你的Python虚拟环境,然后重新执行
pip install trajectory-planning-helpers。 - 该命令行工具会自动配置正确的编译环境变量,指向最新安装的SDK路径。
3. 安装预编译的quadprog wheel包
- 跳过源码编译,直接安装对应Python版本和系统架构的预编译wheel文件:
- 确认你的Python版本(3.10)和系统架构(amd64)。
- 下载匹配的quadprog wheel文件,执行
pip install quadprog-xxx-cp310-cp310-win_amd64.whl。 - 再执行
pip install trajectory-planning-helpers。
4. 手动修正pyconfig.h的SDK路径
- 打开
C:\Python310\include\pyconfig.h,找到包含basetsd.h的行,修改其引用的SDK路径为已安装的Windows SDK的ucrt/include目录,例如:// 原路径 #include <basetsd.h> // 修改为(根据实际安装路径调整) #include "C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\ucrt\basetsd.h"
内容的提问来源于stack exchange,提问作者Zaiman Aufar Purnama
相关产品推荐
相关产品推荐

