Ich habe 2 Versionen von Python installiert, aber cmake verwendet ältere Version. Wie erzwinge ich cmake, um die neuere Version zu verwenden?Ich habe 2 Versionen von Python installiert, aber CMake verwendet ältere Version. Wie erzwinge ich Cmake, um die neuere Version zu verwenden?
Antwort
Versuchen Sie, -DPYTHON_EXECUTABLE:FILEPATH=/path/to/python2.7
hinzuzufügen Es könnte ein Pfadproblem sein?
Auch könnte den Pfad zu Ihrer Python-Bibliothek festzulegen, verwenden Ihre Version, die Sie mögen:
cmake -DPYTHON_LIBRARIES=/Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib .
Beachten Sie, dass zumindest für cmake 2.8 auf Ubuntu 16.04, müssen Sie -DPYTHON_LIBRARY anstelle von -DYTHON_LIBRARIES setzen – phiresky
Ich hatte ein ähnliches Problem und es gelöst Paul's answer als Hinweis verwenden. Ich musste python2.7
verwenden, um eine ältere Bibliothek zu kompilieren, aber cmake
nimmt meine python3.2
Bibliotheken (und ausführbare Datei) ab.
Zuerst lief ich cmake
mit Standardoptionen, dann bearbeitet die CMakeCache.txt
Datei, die es generiert. Ich tat es auf diese Weise hauptsächlich, weil ich die richtigen -D...
Beschwörungen nicht kannte, um cmake
zu verursachen, um die Python-Bibliothek zu erhalten und Wege, usw. an erster Stelle einzuschließen.
In meinem CmakeCache.txt
fand ich Zeilen wie dieser
Pfad zu einem Programm
PYTHON_EXECUTABLE:FILEPATH=/usr/bin/python
Pfad zu einem Verzeichnis
PYTHON_INCLUDE_DIR:PATH=/usr/include/python3.2
Pfad zu einer Bibliothek
PYTHON_LIBRARY:FILEPATH=/usr/lib/libpython3.2.so
und ersetzt jedes Vorkommen von python3.2
mit python2.7
. Ich musste auch die PYTHON_EXECUTABLE
umbenennen, um python2.7
zu verwenden, da python
ein Symlink zu python3.2
auf meinem System ist.
Dann reran ich cmake
. Da es die zwischengespeicherten Werte bevorzugt, um tatsächlich nach den Bibliotheken zu suchen, sollte dies in allen Fällen funktionieren. Zumindest hat es in meinem getan.
Das ist, was für mich arbeitete. Die Bereitstellung von cmake-Umgebungsvariablen hat nicht funktioniert. Bearbeiten der CmakeCache-Datei hat. Es ist einfacher mit Anyways zu arbeiten – JohnAllen
Sie können entweder von diesen je nach versuchen, was Sie brauchen:
find_package(PythonInterp 2.7 REQUIRED)
find_package(PythonLibs 2.7 REQUIRED)
See: CMake docs
Funktioniert gut, auch mit Travis. –
So einfach ... Ich fühle mich dumm. – dividebyzero
https://cmake.org/cmake/help/latest/module/FindPythonInterp.html empfiehlt, die Zeilen zu tauschen – sercxjo
Ich benutze Anakonda (Python 2.7.8) sowie Python 2.7.6.
Ich versuchte -DPYTHON_EXECUTABLE:FILEPATH=$ANACONDA_HOME/bin
, aber Version 1.4 gefunden (komisch :).
Meine Lösung ist es PYTHON_EXECUTABLE Wechsel:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -DBUILD_TIFF=ON \
-DPYTHON_LIBRARY=$ANACONDA_HOME/lib/libpython2.7.so \
-DPYTHON_INCLUDE_DIR=$ANACONDA_HOME/include/python2.7/ \
-DPYTHON_EXECUTABLE=$ANACONDA_HOME/bin/python
Für Anaconda im Speziellen funktionierte das für mich (und hoffentlich wird es leichter verallgemeinern): https://github.com/jkhoogland/FindPythonAnaconda (obwohl ich zwei kleine Änderungen vornehmen musste - sie sind beide in meiner GitHub-Fork, wenn Upstream funktioniert auch nicht gut für dich) –
- 1. OpenCV mit CMake Version 3.5.2 vs CMake 2.X.X
- 2. So deinstallieren/löschen Sie ältere Ruby-Version und behalten Sie neuere. Ich habe zwei Versionen von Rubin installiert
- 3. Woher weiß CMake, welche Version von Qt verwendet werden soll?
- 4. Wie benutze ich die ältere Version von Ruby 1.9.2
- 5. Überschreiben neuere Versionen von Abhängigkeiten ältere Versionen in Maven-Projekten?
- 6. Wie erzwinge ich, dass iPython eine ältere Version von Python verwendet?
- 7. wie ältere Version von xcode zu deinstallieren
- 8. Composer neuere Version von PHP zu verwenden
- 9. Wie installiert man ältere Version von Typescript?
- 10. Erhalte R, um neuere Versionen von Java zu verwenden
- 11. Cmake mit kompilierten OpenCV Version
- 12. Wie eine ältere Version von Android Studio installiert
- 13. Ich brauche Nokogiri, um eine neuere Version von libxml2 zu verwenden
- 14. Irgendein Weg in CMake, um GCC Version 4+ zu verlangen?
- 15. Wie installiere ich eine ältere Version von Flash Player?
- 16. Wie kann ich eine ältere Version eines Edelsteins über die Befehlszeile aufrufen?
- 17. ältere Dienste neuere Versionen von Protokollpuffern 3 Meldungen
- 18. Wie ältere Röllchen auf Linux installieren (ich ältere PHP-Version habe)
- 19. Wie installiert man eine ältere Version von Scala
- 20. Wie ältere Version von Magento
- 21. Ältere Pydev-Version für Eklipse
- 22. Wie finde ich die CMake-Befehlszeile, die ich für den Build verwendet habe?
- 23. Wie installiert man ältere Version von node.js unter Windows?
- 24. Wie verwalte ich 2 Version von ionic auf Windows
- 25. Sind ältere SIMD-Versionen verfügbar, wenn neuere verwendet werden?
- 26. tox verwendet falsche Version von Pip, wenn mehrere Versionen von Python installiert sind
- 27. Wie bekomme ich CMake, um bestehendes Makefile zu benutzen?
- 28. Kann CMake find_package "common dependency version aware" sein?
- 29. Wie man eine ältere Version von Cocoapods herunterlädt oder installiert
- 30. Verwenden von CMake mit setup.py
Ich habe das umgekehrte Problem: 'cmake' wurde die Wahl python3.2, wo ich 2.7 für eine Bibliothek benötigt kompilieren. – jpaugh