Nouveau projet: Python 2 ou Python 3? [fermé]

Je lance un nouveau logiciel open-source en Python, et je me demande si je devrais utiliser Python 2.x ou Python 3.x.

Il comprendra une interface graphique lourde, des algorithmes scientifiques complexes traitant de grandes quantités de données. Je vais avoir besoin d'au moins Numpy, Scipy, PyQT4, PyOpenGL, h5py, optionaly Matplotlib. Il devrait d'abord être publié en 2013, avec des mises à jour et des extensions au cours des prochaines années.

Il sera utilisé par des scientifiques qui n'ont pas nécessairement une formation en informatique science, sur une grande variété d'ordinateurs (Linux, Windows, Mac...). Certaines machines peuvent être vieilles.

Si je choisis Python 3.x, je crains que le logiciel et les bibliothèques tierces puissent être plus compliqués à installer, en particulier sur les anciens systèmes où Python 2.x est déjà installé. Il serait préférable que des paquets de type RPM (ou des installateurs Windows) pour Python et les bibliothèques externes soient disponibles sur la plupart des systèmes, de sorte qu'il n'est pas nécessaire de tout compiler. Aussi, je ne sais pas si le 3.x la branche est assez mature.

Si je choisis Python 2.x, je pourrais avoir besoin de porter le logiciel à Python 3.x dans un proche avenir si le 2.la branche x devient obsolète (quand cela arrivera-t-il?).

Quelle serait la meilleure option?

22
demandé sur Cyrille Rossant 2012-08-13 20:54:20

3 réponses

Python 3. (La réponse à cette question a changé!)

Python 2 est pour les projets hérités. Les nouveaux projets devraient se pencher vers Python 3.

La raison en est que Python 3 (maintenant 3.6) reçoit à peu près une nouvelle version chaque année. Il a également été stable pendant de nombreuses années (est dans sa dixième année de sortie!). En revanche, Python 2 (encore 2.7) a peu changé au cours des dernières années et continuera à stagner.

Pour plus d'informations: https://wiki.python.org/moin/Python2orPython3/

6
répondu Robino 2017-03-14 10:29:15

Ce wiki discute exactement de votre question: devrais-je utiliser Python 2 ou Python 3 pour mon activité de développement?

C'est une très grande partie subjective de cette question qui dépend exactement de votre situation et de vos contraintes spécifiques.

IMO, cependant, si vous ne pouvez pas être sûr que toutes les bibliothèques tierces dont vous avez besoin fonctionneront avec Python v3.x je resterais avec Python 2.x mais essayez d'écrire du code pour être aussi compatible avec Python 3.x autant que possible (par exemple, print() etc) de sorte que si vous avez besoin ou souhaitez migrer vers v3, votre travail ne sera pas si difficile. Et bien sûr, il y a de la documentation et des outils sur passant de la version 2 à 3. Et ceci sur portage du code v2 vers v3.

Ce sera particulièrement le cas sur les systèmes où vous n'avez pas le contrôle ou ne pouvez pas installer de nouvelles versions de Python ou personnaliser l'installation de logiciels/bibliothèques tiers.

Étant Donné que votre logiciel sera exécuté sur une grande variété de systèmes (Linux, Windows, Mac ..) et par un certain nombre d'utilisateurs, je pense toujours que la v2 est plus un dénominateur commun ces jours-ci.

Donc, résumé de courte durée d'attention: utilisez la version 2.x mais perpare votre code pour v3.x

Enfin, si vous mettez cette chaîne de recherche "[Python] version 3 ou 2 " dans la zone de recherche SO, vous trouverez un certain nombre de articles connexes :

15
répondu Levon 2017-05-23 11:47:00

Je suis D'accord avec Levon.

Avec ces exigences, Je ne risquerais pas encore de commencer en Python3, mais vous devriez écrire votre code en prenant autant de changements Python3 en considération que possible.

Voir cette question écrire du code python 2.7 aussi proche de Python 3.x syntaxe possible car cela pourrait vous aider avec certaines importations et normes que vous pouvez utiliser pour rendre votre code aussi pérenne que possible.

En outre, si vous utilisez une variété de systèmes, vous devez distribuer votre version de python inclus dans l'application, ou de confiance à l'installation de l'utilisateur. La plupart des OS (Non-windows), viennent avec un 2.x saveur de Python installé, et ce n'est pas trivial pour un utilisateur non-technophile de passer à 3.x sans possibilité de casser le système.

2
répondu pcalcao 2017-05-23 12:09:54