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

安装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目录,导致找不到该文件。

  1. 找到你的Windows SDK版本对应的shared路径,示例路径为:
    C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\shared
  2. 打开命令提示符(管理员权限),执行以下命令添加环境变量:
    set INCLUDE=C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\shared;%INCLUDE%
    
  3. 再次执行安装命令:
    pip install gymnasium[box2d]
    

方案2:使用VS自带的命令提示符安装

Visual Studio的工具命令提示符会自动配置好所有编译所需的环境变量:

  1. 打开「开始菜单」,找到「Visual Studio 2022」文件夹,启动「x64 Native Tools Command Prompt for VS 2022」
  2. 在该窗口中直接执行:
    pip install gymnasium[box2d]
    

方案3:安装预编译的box2d-py包

跳过编译步骤,直接安装预编译的wheel包:

  1. 先安装预编译的box2d-py:
    pip install box2d-py==2.3.8 --only-binary :all:
    
  2. 再安装gymnasium[box2d]:
    pip install gymnasium[box2d]
    

内容的提问来源于stack exchange,提问作者Krish nandan Das

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 10:09:50