Seit einer Woche versuche ich, eine Software auf einer Neuinstallation von CentOS 8 zu installieren. Der Installationsvorgang und die Software selbst funktionieren auf CentOS 7 einwandfrei, aber ich sollte sie auf CentOS 8 installieren.
Das Hauptproblem besteht derzeit darin, dass einige Python-Pakete fehlen. Insbesondere kann ich die folgenden Paketnamen nicht abrufen:
MySQL-python
libxml2-python
numpy
python-imaging
python2-pyside
python-netifaces
Ich kann die Bibliotheken natürlich über pip2 installieren, aber es scheint die Abhängigkeiten nicht zu erfüllen.
Müssen wir die Abhängigkeiten aktualisieren und vielleicht etwas Code ändern oder gibt es eine Möglichkeit, es so wie es ist zum Laufen zu bringen? Am besten mit EPEL 8, aber mit EPEL 7 bekomme ich sowieso die gleichen Fehler.
Antwort1
CentOS 8 basiert auf RHEL 8, das standardmäßig auf Python 3 umgestellt hat. Viele Python 2-Pakete sind nicht mehr verfügbar oder haben ihren Namen geändert – NumPy für Python 2 ist beispielsweise python2-numpy
.
Aus rein pythonischer Sicht ist die beste Vorgehensweise in Ihrer Situation die Verwendung einer virtuellen Umgebung: Installieren Sie das CentOS- python2-virtualenv
Paket und führen Sie dann
python2 -m virtualenv --system-site-packages yourenv
(ersetzen Sie es yourenv
durch den Namen, den Sie Ihrer virtuellen Umgebung geben möchten, der gleichzeitig das Verzeichnis ist, in dem sie erstellt wird) und aktivieren Sie die Umgebung mit
source yourenv/bin/activate
Sie können dann Ihre Python-Abhängigkeiten installieren, pip install
ohne das System außerhalb der virtuellen Umgebung zu beeinträchtigen.
Ich habe jedoch den Eindruck, dass Sie ein Paket mit Abhängigkeiten von RPM-Paketen verwenden. Das wird schwieriger zu beheben sein, und der beste Ansatz hängt von anderen Faktoren ab. Wenn die gepackte Software für Python 3 verfügbar ist, würde ich stattdessen versuchen, das zu packen; andernfalls könnten Sie versuchen, das vorhandene Paket zu überarbeiten, aber es besteht eine gute Chance, dass das komplizierter ist als die Verwendung einer virtuellen Umgebung ...
SehenPython in RHEL 8für Details.