60 votes

Améliorez 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é. 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?

145voto

Daniel Eriksson Points 1724

J'ai écrit un guide rapide sur la façon d'installer Python 2.7.3 (et 3.3.0) sur CentOS 6. Vous n'êtes pas censé changer le système de version de Python car il va se casser le système (que vous avez trouvé).

L'installation d'autres versions fonctionne très bien tant que vous laissez le système original de la version à lui seul. Ceci peut être accompli en utilisant make altinstall (au lieu de la normale make install) lors de l'installation d'une autre version de Python.

Le fait d'avoir plusieurs versions de Python disponible est généralement pas un gros problème, tant que vous n'oubliez pas de taper le nom complet, y compris le numéro de version (par exemple "python2.7" ou "easy_install-2.7"). Si vous faites tout votre Python travail à partir d'un virtualenv la gestion des versions est fait pour vous, donc assurez-vous d'installer et d'utiliser virtualenv!

14voto

moven Points 41
vim \`which yum\`
modify #/usr/bin/python to #/usr/bin/python2.4

5voto

larsks Points 23184

Mettez /opt/python2.7/bin dans votre variable d'environnement PATH devant /usr/bin ... ou juste pour vous habituer à taper python2.7 .

2voto

bpbp Points 818

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
 

-1voto

Je recommande, au lieu de cela, mettre à jour le chemin d'accès dans le script associé(s) (comme /usr/bin/yum) à point à votre précédente Python comme l'interprète.

Idéalement, vous voulez mettre à jour yum et ses scripts associés afin qu'ils sont pris en charge par la valeur par défaut de Python installée.

Si cela n'est pas possible, le dessus est entièrement fonctionnel et testé.

Changement:

#!/usr/bin/python

quelque soit le chemin d'accès est de votre ancienne version jusqu'à ce que vous pouvez faire de la au-dessus de yum amélioration.

Cas où vous ne pourriez pas le faire ci-dessus si vous avez un cas isolé de la machine, n'ont pas le temps de mettre à jour rpm manuellement ou ne peut pas se connecter temporairement ou de façon permanente à une norme référentiel yum.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X