web-dev-qa-db-fra.com

Mettez à niveau python sans casser votre yum

J'ai récemment installé Python 2.7.3 sur une machine CentOS en compilant à partir des sources. Python 2.7.3 est installé sur /opt/python2.7 et lors de son installation, je viens de changer/usr/bin/python pour qu'il pointe vers la nouvelle version. Apparemment, cela est faux, car lorsque je l’ai fait, c’était cassé, miam. Je voudrais obtenir le suivant.

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

J'ai changé/usr/bin/python pour renvoyer au python 2.6.6 mais maintenant 2.6.6 est la version par défaut de python. Une idée comment résoudre ce problème?

50
tbeauvais

J'ai écrit un quick guide sur la façon d'installer les dernières versions de Python 2 et Python 3 sur CentOS 6 et CentOS 7. Il couvre actuellement Python 2.7.13 et Python 3.6.0.

Vous n'êtes pas censé changer la version du système de Python car cela endommagerait le système (comme vous l'avez découvert). L'installation d'autres versions fonctionne correctement tant que vous laissez la version d'origine du système. Cela peut être accompli en utilisant un préfixe personnalisé (par exemple /usr/local) lors de l'exécution de configure et en utilisant make altinstall (au lieu du make install normal) lors de l'installation de votre version de Python.

Le fait d'avoir plusieurs versions de Python disponibles n'est généralement pas un gros problème si vous vous souvenez de taper le nom complet, y compris le numéro de version (par exemple "python2.7" ou "pip2.7"). Si vous faites tout votre travail Python à partir d'un virtualenv, le contrôle de version est géré pour vous, alors assurez-vous d'installer et d'utiliser virtualenv!

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

Placez /opt/python2.7/bin dans votre variable d'environnement PATH devant le /usr/bin... ou commencez simplement à vous habituer à taper python2.7.

5
larsks

pythonz , un fork actif de pythonbrew, en fait un jeu d'enfant. Vous pouvez installer une version avec:

# pythonz install 2.7.3

Ensuite, configurez un lien symbolique avec:

# 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

Si vous souhaitez essayer des packages rpm, vous pouvez installer des packages Binary basés sur les derniers rpms de Fedora, mais recompilés .__ pour RHEL6/CentOS6/ScientificLinux-6 sur:

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

meilleures salutations,

Florian La Roche

0
FlorianLa Roche

J'ai lu un article avec un commentaire indiquant que les commandes suivantes peuvent être exécutées maintenant. Je ne me suis pas testé, alors faites attention.

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