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

OpenPose Python编译报错sszie_t未定义及运行库缺失问题求助

问题分析与解决方案

编译阶段:解决ssize_t未定义错误

  • 不要手动修改pybind11的numpy.h文件,这种临时修改会破坏库的兼容性,导致后续运行时链接异常。
  • 问题根源:VS2022默认不定义ssize_t,且CMake自动生成的pybind11_cpp_standard配置未匹配当前环境的C++标准。
  • 正确操作:
    1. 清空build目录,重新创建。
    2. 打开CMake-GUI,选择OpenPose源码目录和新的build目录,点击Configure,选择Visual Studio 2022 17 Win64。
    3. 勾选BUILD_PYTHON选项后,找到pybind11_cpp_standard设置项,将其值改为17(匹配VS2022的默认C++标准)。
    4. 再次点击Configure,直到所有红色配置项消失,再点击Generate生成项目。
    5. 打开VS2022,以Release模式重新编译整个解决方案。

运行阶段:解决OpenPose库找不到错误

编译成功后,运行Python脚本出现库找不到的问题,按以下步骤处理:

  • 找到OpenPose build目录下的bin/Release文件夹(例如openpose/build/bin/Release),将该路径添加到系统环境变量PATH中,添加后重启命令行/IDE。
  • 或者,将bin/Release目录下的所有.dll文件(包括openpose.dll、pyopenpose.dll等)复制到Python示例脚本的同级目录。
  • 确保Python脚本的运行路径正确,不要随意移动脚本位置,保持和编译生成的Python绑定文件路径对应。

额外检查项

  • 确认VS2022已安装完整的C++桌面开发组件:包括MSVC v143工具集、Windows 10 SDK(版本10.0.19041及以上)、C++ CMake工具。
  • 检查CUDA 12.1是否正确配置:确保VS2022能识别CUDA工具链,CMake配置时CUDA_TOOLKIT_ROOT_DIR指向正确的CUDA安装路径。
  • 避免使用Anaconda虚拟环境中的pybind11:CMake会自动下载OpenPose依赖的pybind11子模块,无需手动安装,删除虚拟环境中手动安装的pybind11,让CMake使用仓库自带的子模块版本。

内容的提问来源于stack exchange,提问作者Axel Park

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 14:37:11