Skip to content

FindPythonLibsNew.cmake finds wrong python interpreter when using pyenv #2154

Open
@hakonhagland

Description

@hakonhagland

I created a simple test module example/example.cpp using the pybind11 library, then to compile it I used CMakeLists.txt :

cmake_minimum_required(VERSION 2.8.12)
project(example)
set(PYBIND_DIR "/home/hakon/pybind11/pybind11")
add_subdirectory(${PYBIND_DIR} pybind11)
pybind11_add_module(example example/example.cpp)

then created a build folder, and ran cmake:

mkdir build
cd build
cmake ..

The output is:

-- Found PythonInterp: /home/hakon/.pyenv/shims/python3.8 (found version "1.4") 
CMake Error at /home/hakon/pybind11/pybind11/tools/FindPythonLibsNew.cmake:96 (message):
  Python config failure:

  pyenv: python3.8: command not found

  

  The `python3.8' command exists in these Python versions:

    3.8.0
    3.8.0-debug

  

Call Stack (most recent call first):
  /home/hakon/pybind11/pybind11/tools/pybind11Tools.cmake:16 (find_package)
  /home/hakon/pybind11/pybind11/CMakeLists.txt:33 (include)


-- Configuring incomplete, errors occurred!
See also "/home/hakon/pybind11/test/build/CMakeFiles/CMakeOutput.log".

I am using pyenv with the following versions installed:

$ pyenv versions
  system
  2.7.16
* 3.7.3 (set by /home/hakon/.pyenv/version)
  3.8.0
  3.8.0-debug

Notice that pybind11Tools.cmake finds the version 3.8.0 even though the current is set to 3.7.3. If I shift to version 3.8.0 it runs fine:

$ pyenv local 3.8.0
$ cmake ..
-- Found PythonInterp: /home/hakon/.pyenv/shims/python3.8 (found version "3.8") 
-- Found PythonLibs: /home/hakon/.pyenv/versions/3.8.0/lib/libpython3.8.a
-- Performing Test HAS_CPP14_FLAG
-- Performing Test HAS_CPP14_FLAG - Success
-- pybind11 v2.5.dev1
-- Performing Test HAS_FLTO
-- Performing Test HAS_FLTO - Success
-- LTO enabled
-- Configuring done
-- Generating done
-- Build files have been written to: /home/hakon/pybind11/test/build

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions