2010-06-01 21 views
3

Je vais commencer un long projet de programmation (~ 1 an) en Python. Je veux utiliser wxPython pour mon interface graphique (supporte 2.6), mais je veux aussi utiliser 3.1 pour le reste du projet (pour commencer à utiliser la syntaxe 3.x).Un projet Python peut-il utiliser le code 2.x et 3.x?

Y a-t-il un moyen pour moi de concevoir un projet qui mélange les modules 2.x et 3.x? Ou devrais-je juste mordre la balle et utiliser soit 2.x (préféré, puisque je veux vraiment apprendre wxPython) ou 3.x tout au long?

Merci,

Mike

+0

L'utilitaire 2to3 convertit votre Python 2 en Python 3. Pourquoi "mixer"? Pourquoi ne pas simplement écrire Python 2 et convertir? –

+0

Une intuition (du débutant) qui me dit si la conversion de 2.x à 3.x était aussi simple que 2to3, toutes les grandes bibliothèques l'auraient fait le jour 2to3 est sorti. Que les programmeurs (beaucoup plus accomplis) comme ceux derrière wxPython n'ont pas encore porté leurs bibliothèques me fait penser que la traduction est difficile, même pour quelque chose d'aussi basique que mon projet. – MikeRand

+0

@ Begbie00: Je ne suis pas sûr que vous ayez ce droit du tout. C'est ** aussi facile que 2to3. Cependant, tout le monde ne s'en soucie pas vraiment. Certains auteurs sont trop occupés par d'autres choses pour obtenir leurs paquets Python 2 prêts pour Python 3. Par conséquent, tout le monde n'a pas tout mis à jour pour que l'utilitaire 2to3 fonctionne. Vous, cependant, commencez frais.Pourquoi ne pas utiliser 2to3 comme indiqué par le site web Python? Pourquoi "mélanger"? –

Répondre

3

Python 2 et 3 ne sont pas si différents. quelques minutes pour se familiariser avec Python 3. La recommandation officielle dit que vous devriez utiliser Python 2.6 (la version actuelle) et essayer d'être compatible avec le futur.Python 3 n'est actuellement pas une option pour les grands projets comme pratiquement aucun des populaires les paquets ont été traduits mais le développement de Python 2 et 3 se poursuivra en parallèle pendant longtemps, donc vous ne perdrez pas grand chose en n'utilisant pas Python 3. Vous pouvez importer de nombreuses fonctions syntaxiques de 3 (littéraux de chaîne Unicode, di vision, print fonction, importations absolues) en utilisant le module __future__, et la bibliothèque standard reste essentiellement la même. Donc, je vous recommande d'utiliser Python 2.

5

Vous devez utiliser Python 2.7 (un candidat de sortie est prévue dans les prochains jours), qui est très proche de Python 3.1 et à coder en prenant soin de pas en utilisant les fonctionnalités dépréciées. Il existe une version récente de wxpython pour python 2.7. Après wxpython obtient 3.1-3.2 builds, la conversion du code ne devrait pas être trop douloureuse. encore, wxpython a no deadline for the transition Si vous avez appris Python 2 bien, il sera :-(

Une autre option consiste à utiliser pyQt qui a déjà construit pour python 3.1

+0

+1 pour pyQt. pyQt a aussi actuellement l'avantage d'une meilleure disponibilité sur Mac OS X (il est disponible via Fink, alors que wxPython ne l'est pas). – EOL

2

mélange la possibilité d'utiliser wxPython (2.x) + avec l'apprentissage nouvelle syntaxe (3.x)

Ne pas "mélanger".

Écrire Python 2. Faites-le fonctionner.

Jouer avec Python 3 séparément. Ne pas "mélanger". Lorsque les différents packages et modules sont disponibles en Python 3, utilisez la conversion 2to3 pour créer Python 3. Vous trouverez quelques petits problèmes. Corrigez votre Python 2 pour que votre paquet fonctionne en Python 2 et aussi fonctionne après la conversion.

Ensuite, vous pouvez laisser tomber le support pour Python 2 et se concentrer sur Python 3.

Ne pas "mélanger".