2009-05-29 7 views
0

Fedora Core 9 inclut Python 2.5.1. Je peux utiliser YUM pour obtenir les dernières et meilleures versions.Mise à niveau de Fedora Python cassé easy_install

Pour être prêt pour les tests officiels 2.6, je voulais commencer avec 2.5.4. Il semble qu'il n'y ait pas de paquet Fedora 9 YUM, parce que 2.5.4 n'est pas une partie officielle de FC9.

J'ai téléchargé 2.5.4, j'ai fait ./configure; make; make install et j'ai terminé avec deux Pythons. Le 2.5.1 officiel (en /usr/bin) et le nouveau 2.5.4. (dans /usr/local/bin).

Aucune de ma pile technologique n'est installée dans /usr/local/lib/python2.5.

Il semble que j'ai plusieurs choix pour aller de l'avant. Quelqu'un at-il des préférences?

  • Copie /usr/lib/python2.5/* à /usr/local/lib/python2.5 pour reproduire mon environnement. Cela devrait fonctionner, à moins qu'une partie des bibliothèques Python ne soit connectée à/usr/bin/python lors de l'installation. C'est très simple, mais y a-t-il un inconvénient?

  • Réinstallez tout en exécutant easy_install. Sauf, easy_install est (actuellement) câblé à /usr/bin/python. Donc, je dois d'abord corriger easy_install, puis tout réinstaller.

    Cela prend du temps, mais cela me donne un environnement propre et nouveau. Mais y a-t-il un inconvénient? [Et pourquoi easy_install se branche-t-il lui-même?]

  • Relink /usr/bin/python sera /usr/local/bin/python. Je devrais encore copier ou réinstaller la bibliothèque, donc je ne pense pas que cela me fasse du bien. [Cela ferait easy_install travail; mais de même, éditerait /usr/bin/easy_install.]

Est-ce que quelqu'un a copié sa bibliothèque? Est-ce si simple?

Ou devrais-je corriger easy_install et simplement faire un pas dans le guide d'installation et construire un nouveau, propre, dernier-et-plus grand?


Modifier

Ou, devrais-je

  • Passer en essayant de résoudre les 2.5.1 et 2.5.4 questions et simplement sauter directement à 2,6?

Répondre

4

Normalement, vous n'auriez qu'une seule version d'une version python installée. Depuis 2.5.1 et 2.5.4 sont de la même version, la copie de vos bibliothèques devrait fonctionner correctement. Ce que vous devez faire attention, c'est que vous avez maintenant/usr/bin/python, et/usr/local/bin/python dans votre chemin, et certains utilitaires peuvent être confus.

Si vous avez besoin d'avoir les deux versions micro-installés à la fois, je garderais 2.5.4 de votre chemin tout à fait, ou lui permettre de clobber complètement l'autre (le faites à vos propres risques bien;) Si vous aller avec le premier, vous pouvez également pointer 2.5.4 vers vos paquets de site en utilisant la variable d'environnement PYTHONPATH. Ubuntu prend un chemin différent, et c'est ainsi que vous pouvez gérer différentes versions majeures. Le binaire python est donné avec la version jointe:

/usr/bin/python -> python2.6 
/usr/bin/python2.5 
/usr/bin/python2.6 

Chacun a son propre répertoire /usr/lib/python2.X avec les versions de tous les modules.

Et enfin, vous pouvez personnaliser davantage votre configuration par modifying your site.py

2

Je vous suggère de créer un virtualenv (ou plusieurs) pour installer des paquets dans.

2

J'ai eu des expériences et des problèmes similaires lors de l'installation de Python 2.5 sur une version plus ancienne d'ubuntu qui a fourni 2.4 hors de la boîte.

J'ai d'abord essayé de corriger le easy_install, mais cela a conduit à des problèmes avec tout ce qui voulait utiliser la version fournie par os de python. Je trafiquais souvent avec la chaîne d'outils pour corriger différentes erreurs qui pourraient surgir à chaque installation. L'installation de tout logiciel python via apt, ou l'installation de tout logiciel d'apt ayant un script python easy_install dans le cadre de l'installation, était souvent amusant.Je suis sûr que je pourrais probablement avoir été plus vigilant dans la correction easy_install, mais j'ai abandonné. Au lieu de cela, j'ai copié la bibliothèque, et tout a fonctionné. Comme vous le dites, il peut y avoir des problèmes selon ce que vous avez installé, mais je n'ai pas eu de problèmes. En vérifiant à deux reprises le modulede Python, j'ai vu qu'il fonctionnait entièrement sur des chemins relatifs, en construisant dynamiquement des chemins absolus; Cela m'a donné un peu de confiance pour essayer l'approche «copier tout». J'ai revérifié tous les fichiers .pth, puis je l'ai fait.

Questions connexes