Ich versuche, inria Graphite auf meinem Ubuntu zu erstellen, das in einem VirtualBox-Simulator ausgeführt wird. Befolgen Sie die Anweisungen und installieren Sie die python-dev
Pakete. Wenn ich cmake ausführe, wird dennoch ein Fehler angezeigt:
CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:108 (message):
Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)
(Required is at least version "3.2")
Call Stack (most recent call first):
/usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:315 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-2.8/Modules/FindPythonLibs.cmake:208 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
src/packages/OGF/gel_python3/CMakeLists.txt:11 (FIND_PACKAGE)
Ich habe nachgesehen /usr/lib/
und gefunden
tintin@tintin-VirtualBox:/usr/lib$ find . -name "libpython*"
./x86_64-linux-gnu/libpython3.4m.so.1.0
./x86_64-linux-gnu/libpython2.7.so.1.0
./x86_64-linux-gnu/libpython3.4m.a
./x86_64-linux-gnu/libpython2.7.a
./x86_64-linux-gnu/libpython3.4m.so
./x86_64-linux-gnu/libpython2.7.so
./x86_64-linux-gnu/libpython2.7.so.1
./x86_64-linux-gnu/libpython3.4m.so.1
Warum kann cmake die PythonLibs nicht finden, oder wie soll ich damit umgehen?
sudo apt-get install python-dev
apt-get install python3-dev
.python-dev
undpython3-dev
sind Metapakete, die den aktuellsten Entwickler für das ausgewählte Python in den Upstream ziehen.Das Problem scheint zu sein, dass Ubuntu 14.04 standardmäßig Python 3.4 installiert und die CMake-Version von Ubuntu (2.8) nur bis Python 3.3 sucht. Eine Problemumgehung ist das Hinzufügen
set(Python_ADDITIONAL_VERSIONS 3.4)
vor derfind_package
Anweisung. Beachten Sie, dass ich einen Fehler zu diesem Problem gemeldet habe.Seit CMake 3.0 sucht CMake nach Python 3.4 , daher sollte auch die manuelle Installation dieser Version das Problem beheben.
quelle
Für mich war das Problem ein schlechter Cache
Entfernte den Cache mit der alten 2.7-Version und erlaubte es, 3.2 in meinem Fall zu finden.
Der cmake, den ich benutzt habe, ist
quelle
Ich hatte kürzlich ein ähnliches Problem mit Ubuntu 14.04 64-Bit; Anscheinend untersucht CMake standardmäßig keine architekturabhängigen Installationsordner:
(ab CMake 2.8.12 Online-Dokumentation des Befehls find_package )
Eine Lösung besteht darin, diese CMAKE_LIBRARY_ARCHITECTURE in der Projektstammdatei CMakeLists.txt festzulegen (in Ihrem Fall würde dies src / packages / OGF / gel_python3 / CMakeLists.txt bearbeiten), bevor find_package für PythonLibs aufgerufen wird. zum Beispiel:
Das hat in meinem Fall funktioniert.
quelle