Shrimp_tiger_write 2022-08-11 11:47 采纳率: 0%
浏览 246

编译Open3D找不到Python3.

问题遇到的现象和发生背景

编译Open3D过程中提示找不到Python3,但是已经安装。

问题相关代码,请勿粘贴截图

Could NOT find Python3 (missing: Python3_EXECUTABLE Interpreter) (found suitable version "3.6.8", minimum required is "3.6")
Reason given by package:
Interpreter: Wrong architecture for the interpreter "F:/SoftWare/Python/install/python.exe"

CMake Error at CMakeLists.txt:323 (message):
BUILD_PYTHON_MODULE=ON requires Python >= 3.6. Please ensure it is in
PATH.

img

我的解答思路和尝试过的方法

添加了环境变量但是没用。

  • 写回答

1条回答 默认 最新

  • Juan_2012 2025-10-19 12:00
    关注

    回答参考qwen
    你遇到的问题是:CMake 在编译 Open3D 时找到了 Python 3.6.8,但提示“Wrong architecture”(架构错误),说明 CMake 检测到的 Python 解释器与当前构建环境的架构不匹配。


    🔍 错误关键信息分析:

    Reason given by package:
    Interpreter: Wrong architecture for the interpreter "F:/SoftWare/Python/install/python.exe"
    

    这表明:

    • 你的 构建目标是 64 位(x64)平台
    • 而你安装的 Python 是 32 位版本(即使版本号是 3.6.8,也可能是 win32)

    CMake 的 find_package(Python3) 对架构非常严格。如果你在 x64 环境下编译,必须使用 64 位的 Python 解释器,否则会拒绝使用并报错“Wrong architecture”。


    ✅ 解决方案

    ✅ 方法一:改用 64 位 Python(推荐)

    1. 确认当前 Python 架构

      打开命令行,运行:

      F:\SoftWare\Python\install\python.exe -c "import platform; print(platform.architecture())"
      

      输出如果是:

      ('32bit', 'WindowsPE')
      

      说明是 32 位 Python ❌

    2. 下载并安装 64 位 Python

      前往官网 https://www.python.org/downloads/

      • 下载 Windows x86-64 executable installer
      • 安装路径建议为:C:\Python36 或保持原路径但确保是 64 位
    3. 更新环境变量 PATH

      将新的 64 位 Python 安装路径加入系统 PATH,例如:

      C:\Python36\
      C:\Python36\Scripts\
      
    4. 验证是否成功

      python --version
      python -c "import platform; print(platform.architecture())"
      

      应输出:

      64bit, WindowsPE
      
    5. 重新运行 CMake

      cmake -DBUILD_PYTHON_MODULE=ON ...
      

      错误应消失。


    ✅ 方法二:强制指定正确 Python 路径(适用于多版本共存)

    即使你有正确的 Python,CMake 可能仍找到旧的或错误的。可以手动指定:

    cmake \
      -DPYTHON_EXECUTABLE="C:/Python36/python.exe" \
      -DBUILD_PYTHON_MODULE=ON \
      -DCMAKE_BUILD_TYPE=Release \
      ..
    

    📌 注意:

    • 使用正斜杠 / 或双反斜杠 \\
    • 确保该路径下的 python.exe 是 64 位

    示例完整命令(PowerShell):

    cmake -S . -B build `
      -DPYTHON_EXECUTABLE="C:/Python36/python.exe" `
      -DBUILD_PYTHON_MODULE=ON
    

    ✅ 方法三:使用 vcpkg + Python(高级用户)

    如果你用 vcpkg 管理依赖,可尝试:

    vcpkg install python3:x64-windows
    

    然后通过 -DCMAKE_TOOLCHAIN_FILE= 引入 vcpkg,并让其自动找到匹配的 Python。


    ⚠️ 其他注意事项

    项目建议
    Python 版本≥3.6,Open3D 支持 3.6~3.11(视版本而定)
    Python 架构必须与构建目标一致(x64 → x64 Python)
    虚拟环境若使用 conda/virtualenv,也要确保解释器是 64 位
    Anaconda 用户推荐使用 conda install python=3.9 并激活环境后再编译

    🧪 验证技巧:让 CMake 显示详细查找过程

    添加以下参数查看 Python 查找细节:

    cmake -DPython3_FIND_DEBUG=TRUE ...
    

    或临时加一句到 CMakeLists.txt

    find_package(Python3 COMPONENTS Interpreter REQUIRED)
    message(STATUS "Found Python: ${Python3_EXECUTABLE} (found version: ${Python3_VERSION})")
    

    ✅ 总结

    原因解决方法
    Python 是 32 位,但构建需要 64 位更换为 64 位 Python
    CMake 找到了错误的 Python手动指定 -DPYTHON_EXECUTABLE=
    PATH 中存在多个 Python 冲突清理 PATH 或使用绝对路径指定

    ✅ 最终建议:卸载 32 位 Python,安装官方 64 位 Python,并通过 -DPYTHON_EXECUTABLE 明确指定路径。


    评论

报告相同问题?

问题事件

  • 修改了问题 8月11日
  • 创建了问题 8月11日