【问题标题】:CMake Error: could NOT find Python (missing: Python_NumPy_INCLUDE_DIRS NumPy) (found version "2.7.17")CMake 错误:找不到 Python(缺少:Python_NumPy_INCLUDE_DIRS NumPy)(找到版本“2.7.17”)
【发布时间】:2021-10-25 00:32:53
【问题描述】:

我在构建过程中遇到了这个错误

CMake Error at /opt/cmake-3.21.1-linux-x86_64/share/cmake-3.21/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find Python (missing: Python_NumPy_INCLUDE_DIRS NumPy) (found
  version "2.7.17")
Call Stack (most recent call first):
  /opt/cmake-3.21.1-linux-x86_64/share/cmake-3.21/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  /opt/cmake-3.21.1-linux-x86_64/share/cmake-3.21/Modules/FindPython.cmake:556 (find_package_handle_standard_args)
  faiss/python/CMakeLists.txt:116 (find_package)

我已经安装了sudo apt-get install python-dev 并尝试添加

-DPYTHON_INCLUDE_DIR=$(python -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())")  \
-DPYTHON_LIBRARY=$(python -c "import distutils.sysconfig as sysconfig; print(sysconfig.get_config_var('LIBDIR'))")

仍然得到同样的错误。我的 python 在 /home/dfw/anaconda3/bin/python 中,它的版本是 3.7.11。我的 cmake 版本是 3.21.1。我该如何解决这个问题?

【问题讨论】:

    标签: python cmake python-3.7


    【解决方案1】:

    Cmake finds 一个由apt 安装在/usr 文件夹中的python。有两种方法可以告诉 Cmake python 的特殊位置:

    在命令行上定义PYTHON_INCLUDE_DIRPYTHON_LIBRARY 变量不起作用,因为当您调用find_package(python3) 时这些变量会被覆盖。

    此外,在将 python-dev 安装到系统中时,您可以明确指定需要版本 3。

    sudo apt-get install python3-dev
    

    【讨论】:

      最近更新 更多