2009-07-04 9 views
1

Je suis actuellement en train de jouer avec python à la maison et je prévois de passer à python 3.1. Le fait est que j'ai un script qui utilise python 2.6 et je ne peux pas les convertir car ils utilisent un module qui n'est pas disponible pour python 3.1 atm. J'envisage donc d'installer python 3.1 le long de mon python 2.6. Je n'ai trouvé que des gens sur internet qui y parviennent en compilant python à partir de la source et en utilisant make altinstall au lieu du classique make install. Quoi qu'il en soit, je pense que la compilation à partir de la source est un peu compliquée. Je pensais courir deux versions différentes d'un programme est facile sur Linux (je cours Fedora 11 pour l'enregistrement). Un indice?Exécution de python 2.6 et 3.1 sur la même machine

Merci d'avoir lu.

+0

J'utilise finalement le make altinstall qui est celui recommandé par le readme source de python 3.1. Fedora ne propose pas encore rmp pour python3.1 et je ne sais pas comment en construire un (et cela semble assez complexe) alors je l'ai compilé à la main. Merci à tous :) – thomas

Répondre

3

Sur mon Linux (Ubuntu Jaunty), je Python 2.5, 2.6 et 3.0 installé, juste en installant le fichier binaire (deb) paquets 'python2.5', 'python2.6' et 'python3.0' utilisant apt-get. Peut-être que Fedora les emballe et les nomme comme RPM d'une manière similaire.

Je peux exécuter celui dont j'ai besoin à partir de la ligne de commande en tapant simplement par ex. python2.6. Donc, je peux aussi préciser celui que je veux en haut de mon script en mettant .: par exemple

#!/usr/bin/python2.6 
+0

Les dépôts Fedora n'ont pas de paquet pour l'instant. Je me souviendrai de ce fait quand je reconsidérerai mon choix de distribution :) – thomas

1

Vous n'êtes pas censé devoir les exécuter ensemble.

2.6 a déjà toutes les fonctionnalités 3.0. Vous pouvez activer ces fonctionnalités avec des instructions from __future__ import.

Il est beaucoup plus simple d'exécuter 2.6 (avec certains from __future__ import) jusqu'à ce que tout ce dont vous avez besoin est dans 3.x, puis basculez.

+0

Je suis au courant de la fonction __future__ import somefeature mais je veux vraiment utiliser python 3.x car, en tant qu'amateur, le temps dont j'ai besoin pour terminer un projet est énorme. Et je parie que quand j'arrêterai mon projet, python 3.x sera plus largement utilisé. Quoi qu'il en soit, merci pour votre réponse :) – thomas

+1

La fonction d'importation future est gratuite. Aucun.Cela n'augmente pas le temps requis pour développer un logiciel. Vous n'avez pas besoin de faire deux choses à la fois. Utilisez simplement 2.6 et migrez vers la version 3.0 lorsque (a) tout ce dont vous dépendez a été migré et (b) que l'utilisateur demande une version "pure 3.x". Jusque-là, utilisez 2.6 avec l'avenir et vous pouvez vous concentrer sur le projet et non sur l'infrastructure. –

2

Téléchargez la version python vous voulez avoir comme alternative, décompressez, et lorsque vous le configurez, utilisez prefix =/ma/alt/dir

Vive

Nik 
+0

Merci pour votre réponse. Il a confirmé que je devais compiler moi-même python, et je l'ai juste fait avec succès (certains modules ressemblent à tkinter). – thomas

0

Pourquoi avez-vous besoin d'utiliser make install du tout? Après avoir fait make pour compiler python 3.x, déplacez simplement le dossier python quelque part, et créez un lien symbolique vers l'exécutable python dans votre répertoire ~/bin. Ajoutez ce répertoire à votre chemin si ce n'est déjà fait, et vous aurez une version de développement python prête à être utilisée. Tant que le lien symbolique lui-même n'est pas nommé python (j'ai nommé le mien py), vous ne rencontrerez aucun conflit.

Un avantage supplémentaire est que si vous voulez passer à une nouvelle version de python 3.x, par exemple si vous suivez les versions bêta, il vous suffit de télécharger, compiler et remplacer le dossier par le nouveau.

C'est un peu compliqué, mais le désordre est confiné à un répertoire, et je le trouve beaucoup plus pratique que de penser à altinstalls et autres.

+0

Je préfère utiliser make (alt) install car je ne suis pas friand de faire simlink partout. Mais cela aurait certainement fonctionné aussi bien que la façon de faire de façon alternative. Merci! – thomas

+0

Vous avez seulement besoin d'un lien symbolique vers l'exécutable python actuel. – sykora

Questions connexes