2015-05-26 6 views
8

Python und python3 installiert sind in OS X Yosemite über Homebrew finden, aber cmake nicht PythonLibs 3, nur 2 zu finden:OS X cmake nicht PythonLibs 3.4


CMakeLists.txt:

set(Python_ADDITIONAL_VERSIONS 3.4) 
FIND_PACKAGE(PythonInterp REQUIRED) 
FIND_PACKAGE(PythonLibs 3.4 REQUIRED) 

get:

-- Found PythonInterp: /usr/local/bin/python3.4 (found suitable version "3.4.3", minimum required is "3.4") 
-- Found PythonLibs: /usr/lib/libpython3.4.dylib (found version "2.7.6" 

CMakeLi sts.txt:

set(Python_ADDITIONAL_VERSIONS 3.4) 
FIND_PACKAGE(PythonInterp 3.4 REQUIRED) 
FIND_PACKAGE(PythonLibs 3.4 REQUIRED) 

get:

Could NOT find PythonLibs: Found unsuitable version "2.7.6", but required 
is at least "3.4" (found PYTHON_LIBRARY-NOTFOUND) 


Dann habe ich diese zusätzliche Listen cmake:

INCLUDE_DIRECTORIES(/usr/local/Cellar/python3/3.4.3/Frameworks/Python.framework/Versions/3.4/lib) 
INCLUDE_DIRECTORIES(/usr/local/Cellar/python3/3.4.3/Frameworks/Python.framework/Versions/3.4/include/python3.4m) 

und sogar kopiert, dass Verzeichnisse /usr/lib, und dann erhalten:

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

das sieht komisch aus.

+0

gleiche Problem mit cmake auf Windows, speziell ist diese Linie eine dumme Fehlermeldung: '(gefunden geeignete Version„3.4 .3 ", minimal erforderlich ist" 3.4 ")' – dashesy

Antwort

0

Es scheint, dass die korrekte Version von Python in Ihrer CMake Konfiguration gefunden wird, aber die Speicherorte der Bibliotheken müssen ebenfalls festgelegt werden. Abhängig von Ihrer Installation/Konfiguration die Lage der Bibliotheken kann variieren, obwohl in der Konfiguration, die Sie etwas Ähnliches wollen werden:

PYTHON_LIBRARIES=/Library/Frameworks/Python.framework/Versions/3.4/lib/libpython3.4m.dylib 
PYTHON_INCLUDE_DIR=/Library/Frameworks/Python.framework/Versions/3.4/include/python3.4m 

http://www.cmake.org/cmake/help/v3.0/module/FindPythonLibs.html

+0

Es sieht nicht Linie eine universelle Lösung, aber es hat gut funktioniert. Jetzt entschied ich mich dafür, python3 setuptools anstelle von cmake zu verwenden. – iskhakovt

0

Sie müssen den Pfad zu den Bibliotheken in Ihrem „LD_LIBRARY_PATH hinzufügen " Umgebungsvariable. Auf diese Weise wird CMake wissen, wo man nach ihnen suchen soll. Dies kann bei mehreren Python-Installationen oder bei der Installation an einem nicht standardmäßigen Speicherort der Fall sein. Dies sollte es lösen:

export LD_LIBRARY_PATH=/usr/local/Cellar/python3/3.4.3/Frameworks/Python.framework/Versions/3.4/lib:$LD_LIBRARY_PATH 

Der CMake Befehl "INCLUDE_DIRECTORIES" ist nur für Header (aka/usr/include.).

-> Wenn meine Lösung nicht funktioniert, stellen Sie sicher, dass Sie Python-devel installiert haben: how to install python-devel in Mac OS?