安装gymnasium[box2d]遇subprocess-exited-with-error错误求助
安装gymnasium[box2d]时遇subprocess-exited-with-error错误的解决方案
问题描述
执行pip install gymnasium[box2d]时触发subprocess-exited-with-error错误,编译阶段提示无法打开包含文件'basetsd.h',导致box2d-py的wheel构建失败。
错误详情
C:\Users\Administrator>pip install gymnasium[box2d] error: subprocess-exited-with-error × python setup.py bdist_wheel 运行失败。 │ 退出码:1 ╰─> [40行输出] 使用setuptools(版本68.0.0)。 运行bdist_wheel 运行build 运行build_py 创建build 创建build\lib.win-amd64-cpython-311 创建build\lib.win-amd64-cpython-311\Box2D 复制library\Box2D\Box2D.py -> build\lib.win-amd64-cpython-311\Box2D 复制library\Box2D\__init__.py -> build\lib.win-amd64-cpython-311\Box2D 创建build\lib.win-amd64-cpython-311\Box2D\b2 复制library\Box2D\b2\__init__.py -> build\lib.win-amd64-cpython-311\Box2D\b2 运行build_ext 构建'Box2D._Box2D'扩展 将Box2D\Box2D.i通过swig转换为Box2D\Box2D_wrap.cpp swig.exe -python -c++ -IBox2D -small -O -includeall -ignoremissing -w201 -globals b2Globals -outdir library\Box2D -keyword -w511 -D_SWIG_KWARGS -o Box2D\Box2D_wrap.cpp Box2D\Box2D.i Box2D\Common\b2Math.h(67) : 警告302:标识符'b2Vec2'被%extend重定义(已忽略), Box2D\Box2D_math.i(47) : 警告302:'b2Vec2'的%extend定义。 Box2D\Common\b2Math.h(158) : 警告302:标识符'b2Vec3'被%extend重定义(已忽略), Box2D\Box2D_math.i(168) : 警告302:'b2Vec3'的%extend定义。 Box2D\Common\b2Math.h(197) : 警告302:标识符'b2Mat22'被%extend重定义(已忽略), Box2D\Box2D_math.i(301) : 警告302:'b2Mat22'的%extend定义。 Box2D\Common\b2Math.h(271) : 警告302:标识符'b2Mat33'被%extend重定义(已忽略), Box2D\Box2D_math.i(372) : 警告302:'b2Mat33'的%extend定义。 Box2D\Collision\b2DynamicTree.h(44) : 警告312:暂不支持嵌套联合体(已忽略)。 Box2D\Common\b2Settings.h(144) : 警告506:启用关键字参数时无法包装可变参数 Box2D\Common\b2Math.h(91) : 警告509:重载方法b2Vec2::operator ()(int32)被有效忽略, Box2D\Common\b2Math.h(85) : 警告509:因为它被b2Vec2::operator ()(int32) const覆盖。 创建build\temp.win-amd64-cpython-311 创建build\temp.win-amd64-cpython-311\Release 创建build\temp.win-amd64-cpython-311\Release\Box2D 创建build\temp.win-amd64-cpython-311\Release\Box2D\Collision 创建build\temp.win-amd64-cpython-311\Release\Box2D\Collision\Shapes 创建build\temp.win-amd64-cpython-311\Release\Box2D\Common 创建build\temp.win-amd64-cpython-311\Release\Box2D\Dynamics 创建build\temp.win-amd64-cpython-311\Release\Box2D\Dynamics\Contacts 创建build\temp.win-amd64-cpython-311\Release\Box2D\Dynamics\Joints "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.37.32822\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -IC:\Users\Administrator\anaconda3\include -IC:\Users\Administrator\anaconda3\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.37.32822\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\ucrt" /EHsc /TpBox2D\Box2D_wrap.cpp /Fobuild\temp.win-amd64-cpython-311\Release\Box2D\Box2D_wrap.obj -I. Box2D_wrap.cpp C:\Users\Administrator\anaconda3\include\pyconfig.h(207): 致命错误C1083:无法打开包含文件: 'basetsd.h': 没有那个文件或目录 错误:命令'C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.37.32822\\bin\\HostX86\\x64\\cl.exe' 以退出码2失败 [输出结束] 注意:此错误源自子进程,可能与pip无关。 ERROR: 构建box2d-py的wheel失败 ERROR: 无法为box2d-py构建wheel,而它是安装基于pyproject.toml的项目所必需的
已尝试操作
- 执行
pip install swig wheel,当前swig版本4.1.1,wheel版本0.41.2 - 安装Microsoft Visual Studio 2022社区版及C++开发组件、Windows 11 SDK
解决方案
方案1:补充Windows SDK的Shared目录到INCLUDE环境变量
basetsd.h文件位于Windows Kits的shared目录下,但编译命令中仅包含了ucrt目录,导致找不到该文件。
- 找到你的Windows SDK版本对应的shared路径,示例路径为:
C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\shared - 打开命令提示符(管理员权限),执行以下命令添加环境变量:
set INCLUDE=C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\shared;%INCLUDE% - 再次执行安装命令:
pip install gymnasium[box2d]
方案2:使用VS自带的命令提示符安装
Visual Studio的工具命令提示符会自动配置好所有编译所需的环境变量:
- 打开「开始菜单」,找到「Visual Studio 2022」文件夹,启动「x64 Native Tools Command Prompt for VS 2022」
- 在该窗口中直接执行:
pip install gymnasium[box2d]
方案3:安装预编译的box2d-py包
跳过编译步骤,直接安装预编译的wheel包:
- 先安装预编译的box2d-py:
pip install box2d-py==2.3.8 --only-binary :all: - 再安装gymnasium[box2d]:
pip install gymnasium[box2d]
内容的提问来源于stack exchange,提问作者Krish nandan Das
相关产品推荐
相关产品推荐

