web-dev-qa-db-de.com

Aktualisieren Sie Python, ohne Yum zu brechen

Ich habe vor kurzem Python 2.7.3 auf einem CentOS-Rechner installiert, indem ich aus dem Quellcode kompilierte. Python 2.7.3 ist unter /opt/python2.7 installiert. Als ich es installierte, habe ich gerade/usr/bin/python so geändert, dass es auf die neue Version verweist. Dies ist anscheinend falsch, denn als ich es tat, brach es Yum. Ich würde folgendes bekommen.

There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

   No module named yum

Please install a package which provides this module, or
verify that the module is installed correctly.

It's possible that the above module doesn't match the
current version of Python, which is:
2.7.3 (default, May 15 2012, 17:45:42) 
[GCC 4.4.4 20100726 (Red Hat 4.4.4-13)]

If you cannot solve this problem yourself, please go to 
the yum faq at:
  http://yum.baseurl.org/wiki/Faq

Ich habe/usr/bin/python geändert, um auf den Python 2.6.6 zu zeigen, aber jetzt ist 2.6.6 die Standardversion von Python. Irgendeine Idee, wie man das beheben kann?

50
tbeauvais

Ich habe eine Kurzanleitung zur Installation der neuesten Versionen von Python 2 und Python 3 unter CentOS 6 und CentOS 7 geschrieben. Derzeit werden Python 2.7.13 und Python 3.6.0 behandelt.

Sie dürfen die Systemversion von Python nicht ändern, da dadurch das System beschädigt wird (wie Sie herausgefunden haben). Die Installation anderer Versionen funktioniert einwandfrei, solange Sie die ursprüngliche Systemversion alleine lassen. Dies kann durch die Verwendung eines benutzerdefinierten Präfixes (z. B. /usr/local) bei der Ausführung von configure und durch Verwendung von make altinstall (anstelle des normalen make install) bei der Installation des Python-Builds erreicht werden.

Das Vorhandensein mehrerer Python-Versionen ist in der Regel kein großes Problem, solange Sie daran denken, den vollständigen Namen einschließlich der Versionsnummer einzugeben (z. B. "python2.7" oder "pip2.7"). Wenn Sie Ihre gesamte Python-Arbeit von einem virtuellen Netzwerk aus erledigen, wird die Versionierung für Sie erledigt. Stellen Sie also sicher, dass Sie das Programm virtualenv installieren und verwenden.

134
Daniel Eriksson
vim `which yum`
modify #/usr/bin/python to #/usr/bin/python2.4
15
moven

Setzen Sie /opt/python2.7/bin in Ihre PATH-Umgebungsvariable vor /usr/bin... oder gewöhnen Sie sich einfach an die Eingabe von python2.7.

5
larsks

pythonz , eine aktive Pythonbrew, macht dies zu einem Kinderspiel. Sie können eine Version installieren mit:

# pythonz install 2.7.3

Richten Sie dann einen Symlink ein mit:

# ln -s /usr/local/pythonz/pythons/CPython-2.7.3/bin/python2.7 /usr/local/bin/python2.7
# python2.7 --version
Python 2.7.3
2
Boden Garman
ln -s /usr/local/bin/python2.7 /usr/bin/python
1
Gank

Wenn Sie RPM-Pakete ausprobieren möchten, können Sie Binärpakete installieren, die auf den neuesten Fedora-RPMs basieren, aber für RHEL6/CentOS6/ScientificLinux-6 erneut kompiliert wurden:

http://www.jur-linux.org/download/el-updates/6/

freundliche Grüße,

Florian La Roche

0
FlorianLa Roche

Ich habe ein Stück mit einem Kommentar gelesen, der besagt, dass die folgenden Befehle jetzt ausgeführt werden können. Ich habe mich nicht getestet, also sei vorsichtig.

$ yum install -y epel-release
$ yum install -y python36
0
davidp13