How to link with Python3 Libs with cmake?

Fabian picture Fabian · Mar 25, 2015 · Viewed 14.4k times · Source

I have Python3 installed via brew install python3. However, cmake cannot find PythonLibs 3. Here's the header of my CMakeLists.txt.

cmake_minimum_required(VERSION 3.0)
find_package(PythonLibs 3 REQUIRED)

When I ran cmake, I got this error message

Could NOT find PythonLibs: Found unsuitable version "2.7.6", but required is at least "3" (found /usr/lib/libpython2.7.dylib)

Not sure what I did wrong.

Answer

Fellow Traveler picture Fellow Traveler · Feb 22, 2016

In my experience, this happened because I was using an older version of cmake (2.8 instead of 3+) that didn't know about Python 3.4 (it gave up after 3.3.)

The solution was to go into the CMakeLists.txt file and add an "additional versions" directive ABOVE the find_package:

set(Python_ADDITIONAL_VERSIONS 3.4) find_package(PythonLibs 3 REQUIRED)

You could probably also fix it by upgrading your version of cmake. But the above worked for me with cmake 2.8