2015-05-26 12 views
8

Python i python3 są instalowane w OS X Yosemite poprzez Homebrew, ale cmake nie znajdzie PythonLibs 3, tylko 2:OS X cmake nie może znaleźć 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) 


Potem dodałem to do cmake list:

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) 

a nawet skopiowane że katalogi do /usr/lib, a następnie otrzymano:

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

który wygląda dziwnie.

+0

sam problem z cmake na Windows, specjalnie ta linia jest głupi komunikat o błędzie: '(znaleziono odpowiednia wersja„3.4 .3 ", wymagane minimum to" 3,4 ")' – dashesy

Odpowiedz

0

Wygląda na to, że poprawna wersja języka Python znajduje się w konfiguracji CMake, ale należy również ustawić lokalizacje bibliotek. W zależności od instalacji/konfiguracji położenie biblioteki mogą się różnić, chociaż w konfiguracji będziemy chcieli coś podobnego:

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

Nie wygląda na uniwersalne rozwiązanie, ale działało dobrze. Teraz postanowiłem zrobić to za pomocą settools python3 zamiast cmake. – iskhakovt

0

Trzeba dodać ścieżkę do bibliotek w „LD_LIBRARY_PATH " Zmienna środowiskowa. W ten sposób CMake będzie wiedział, gdzie ich szukać. Może się to zdarzyć w przypadku wielu instalacji pythona lub instalacji w niestandardowej lokalizacji. To powinno go rozwiązać:

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

Polecenie CUpewnij "INCLUDE_DIRECTORIES" jest tylko dla nagłówków (aka/usr/include.).

-> Jeżeli moje rozwiązanie nie działa, upewnij się, że masz zainstalowany python-devel: how to install python-devel in Mac OS?