Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Expert éminent sénior
    Python Software Foundation annonce qu’elle mettra fin au support de Python 2 à partir du 1er janvier 2020
    Ce message n'a pas pu être affiché car il comporte des erreurs.

  2. #2
    Expert éminent
    Pas vraiment nouveau, la PEP 404 à été écrite en novembre 2011.

    http://legacy.python.org/dev/peps/pep-0404/

    Quelques digressions sur le sujet (en): http://blog.startifact.com/posts/the...python-28.html

  3. #3
    Expert éminent sénior
    Salut,

    Il n'y a jamais eu de Python 2.8 sur le radar, seulement des extensions de support de Python 2.7.

    Pourquoi ? Même si plusieurs raisons peuvent être évoquées, deux d’entre elles méritent l’attention. La première, c’est que les utilisateurs sont conservateurs. « Si ça fonctionne correctement pourquoi devrais je migrer ? ».
    Migrer c'est adapter l'existant, tester, déployer,... Ce sont des coûts et des risques que vous ne prendrez pas sans espérer un bénéfice (au moins fonctionnel).
    C'est ce qui fait la différence entre un investissement (le logiciel) et du consommable (une cartouche d'encre, un téléphone portable,...).
    Les utilisateurs ne sont pas "conservateurs", ils sont pragmatiques.

    Windows XP en est un exemple typique. Microsoft a du repousser la date de fin de support plusieurs fois. Et même comme ils ont annoncé officiellement que tout est fini, il y’a encore des puristes qui ne veulent pas abandonner XP.
    La grosse différence est que Python est open source. Rien n'empêche de "supporter" une application écrite avec Python 1.5. Cela pourra coûter beaucoup ou rien du tout mais vous aurez le choix.
    Avec des solutions propriétaires, vous n'avez que le choix proposé par l'éditeur.

    La seconde raison est en relation avec les packages disponibles. Python 2.7 regorge de packages pour lesquels les développeurs ont une affection toute particulière. À l’exemple de Zope (qui est considéré par certains comme une Killer-App), de Twisted, Pika, Python-Ldap, Python-OpenID qui ne sont malheureusement pas disponible sous Python 3.4.
    Pourtant Python3-Ldap, Python3-OpenID sont là...
    Twisted est en cours de migration et vous avez des beta.
    Zope fut une killer-app il y a 10 ans mais d'autres stratégies pour réaliser des "composants" ont vu le jour depuis. Il y a même des bouts de Zope qui se sont fait la malle dans Pyramid.
    Le Python3 Wall of superpower est plutôt au vert côté Python3 et nombre de points "rouges" sont plutôt faux.

    Pourquoi ne pas faire quelques investigations avant de poster une actualité du passé, faussement alarmiste, et qui compare des patates avec des carottes?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre confirmé
    La migration se fait déjà sous Ubuntu depuis 1,2 version et continuera de se faire je pense jusqu'à la prochaine LTS 16.04 qui je l'espère aura complètement migré sous Python 3.x

  5. #5
    Chroniqueur Actualités

    Python 2.7.11 est disponible avec des correctifs de bogues
    Python 2.7.11 est disponible avec des correctifs de bogues
    mais sans nouvelles fonctionnalités

    Python 2.7.11 est disponible et pour cette version, aucune nouvelle fonctionnalité n’a été mise en œuvre. Seules les corrections de bogues ont été effectuées. Nous avons entre autres les erreurs suivantes qui ont été corrigées :

    • HTTPConnection.request() n’était pas compatible avec les vieux styles de classes tels que TemporaryFile. Cela a été corrigé ;
    • un débordement d’entier a été découvert dans l’itérateur. L’erreur a été également corrigée ;
    • format(int, 'c') générait une erreur d’exception de type OverflowError lorsque l’argument n’est pas compris dans la plage de données (0, 256) ;
    • la vérification de type d’exception dans les gestionnaires d’erreurs standard comportait un bogue ;
    • une baisse de performance de l’interpréteur a été observée. C’est pourquoi il a été recommandé d’utiliser la syntaxe « computed gotos » pour envoyer les bytecodes dans l’interpréteur. L'application de cette recommandation permet d’accroître les performances de l'interpréteur ;
    • lorsque Python est exécuté avec l’option -3, les méthodes encode() et decode() et les constructeurs de str ainsi que les classes unicode et bytearray comportaient des erreurs d’encodage pour les caractères non-textes obsolètes. Un avertissement a été intégré toutes les fois que ces erreurs sont rencontrées ;
    • les opérations NAN étaient mal gérées à la compilation ;
    • plusieurs bogues ont été trouvés dans le décodage UTF-7 des données mal formées ;
    • une perte de mémoire a été détectée dans la méthode SSLSocket.getpeercer() ;
    • le protocole SSLv3 marqué comme vulnérable a été désactivé par défaut à la création de la classe ssl.SSLContext ;
    • le module sur les systèmes de fichiers ne supportait pas le décompte de liens pour les répertoires ;
    • le constructeur et la mise à jour de méthode de weakref.WeakValueDictionary n’acceptait pas l’argument self ;
    • un débordement de la mémoire tampon a été détecté dans le module imageop ;
    • le module tarfile ne tolérait pas un nombre de champs composés uniquement d’espace blanc. C’est maintenant le cas.


    Ces corrections de bogues bien qu’utiles pour les utilisateurs des versions 2.x poussent certaines personnes à dire que l’équipe de Python serait plus tournée vers la version 3.x que cette dernière itération en raison de l’absence de nouvelles fonctionnalités. D’autres, pour leur part, enfoncent le clou en appelant de tous les vœux l’abandon complet du support de Python 2.x afin de se concentrer sur les versions 3.x.

    En tout état de cause, l'équipe de Python a déjà averti que la branche 2.7 serait la dernière version de la série 2.x. Toutefois, un support Long Term Support (LTS) a été prévu pour cette branche. La maintenance de la version 2.7 sera donc effectuée jusqu'à 2020. En attendant cette date butoir, les développeurs utilisant les versions 2.x s’accrochent à cette branche et espèrent voir de nouvelles fonctionnalités dans leur version privilégiée.

    Source : Python News

    Et vous ?

    Que pensez-vous de cette version de Python 2 ?

    Pensez-vous qu’il serait temps pour les développeurs Python de tous migrer vers la version 3 ?

    Voir aussi

    Forum Python
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  6. #6
    Membre chevronné
    => Que pensez-vous de cette version de Python 2 ?
    Il est toujours bien d'avoir des correctifs, même sur de vieille version d'un environnement comme Python.

    => Pensez-vous qu’il serait temps pour les développeurs Python de tous migrer vers la version 3 ?
    Il est plus que temps, oui.

    Mais les premiers acteurs sont les OS à montrer l'exemple:
    • Mac OS X: Python 3 n'est pas installé par défaut
    • Linux: La majorité des distributions utilisent Python2 comme interpréteur Python par défaut et non Python3 même si celui-ci est installé.


    Ensuite, certain package de base ne sont pas toujours disponible pour Python3, je pense en particulier à "lxml" qui n'est pas disponible sur "pypi.python.org" en version compiler pour Windows pour Py3.
    La communauté Python a aussi du travail dans ce sens pour faire accepter plus largement cette version.

    Enfin, il serait aussi bon que dans lycées, les universités et les grandes écoles, les professeurs arrêtent de parler de Python 2.x et qu'ils promeuvent aussi Python 3.x qui apporte quand même un confort de développement non négligeable (juste l'unicode et la gestion des encodages est un argument suffisant pour cela).

    On va me dire, "oui, mais Python est aussi beaucoup utilisé par des scientifiques qui ne s'y connaissent pas bien en informatique".
    Et bien justement, s'il ne sont pas au top avec les outils de développement, qu'ils utilisent Python 3, ils ne s'en porterons pas plus mal (voir même mieux)

  7. #7
    Membre averti
    Citation Envoyé par Laurent 1973 Voir le message

    Ensuite, certain package de base ne sont pas toujours disponible pour Python3, je pense en particulier à "lxml" qui n'est pas disponible sur "pypi.python.org" en version compiler pour Windows pour Py3.
    n'est-ce pas celle là : lxml-3.5.0.win32-py3.2.exe ?

  8. #8
    Membre du Club
    Citation Envoyé par Laurent 1973 Voir le message

    On va me dire, "oui, mais Python est aussi beaucoup utilisé par des scientifiques qui ne s'y connaissent pas bien en informatique".
    Et bien justement, s'il ne sont pas au top avec les outils de développement, qu'ils utilisent Python 3, ils ne s'en porterons pas plus mal (voir même mieux)
    Les "scientifiques" ne sont pas tous mauvais en développement, parfois ils n'ont pas le choix. Par exemple, la nouvelle librairie de Deep Learning de Google sortie le mois dernier n'est pour l'instant que sur 2.7 pareil pour GraphLab.
    Sur Anaconda, il a 66 packages de moins sur Python3 par exemple.

    J'aimerais pouvoir switcher pour de bon mais pour l'instant tout n'est pas bien porté sur Py3k+.

  9. #9
    Membre chevronné
    Citation Envoyé par mrqs2crbs Voir le message
    n'est-ce pas celle là : lxml-3.5.0.win32-py3.2.exe ?
    Presque, je cherchais la version amd64

  10. #10
    Membre actif
    Unofficial Windows Binaries for Python Extension Packages
    Le site de référence pour trouver des packages binaires pour Windows :
    Unofficial Windows Binaries for Python Extension Packages

    Dont je suppose celui que tu cherches Laurent :
    http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml
    DragonSoft DS (informatique) — Johnny Five JF (textes) — Olivier Pirson OPi (mathématiques)
    OPiCitationshttps://bitbucket.org/OPiMedia

  11. #11
    Membre chevronné
    Citation Envoyé par OPi Voir le message
    Le site de référence pour trouver des packages binaires pour Windows :
    Unofficial Windows Binaries for Python Extension Packages

    Dont je suppose celui que tu cherches Laurent :
    http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml
    Oui, je l'ai trouvé ici, pas de souci.
    Ce site est une belle mine de packages.

    Je trouve juste dommage que ces packages sont considérés comme "unofficial" et non intégré dans pypi.python.org
    Cela n'aide pas l'adoption de Python3 sous Windows.

  12. #12
    Chroniqueur Actualités

    Guido van Rossum envisage de mettre fin au support de Python 2.7 le 1er janvier 2020
    Guido van Rossum envisage de mettre fin au support de Python 2.7 le 1er janvier 2020
    plus de mises à jour ou correctifs de sécurité après cette date

    Dans un message publié via la liste de diffusion Python, le développeur Guido van Rossum, créateur et leader du projet du langage de programmation Python, a confirmé que le support de la version 2.7 prendra fin en 2020 et plus précisément le 1er janvier 2020. La fin de vie initialement prévue pour 2015 a été repoussée de cinq années. L'objectif était de donner plus de temps aux développeurs et entreprises pour migrer vers les versions prises en charge de Python 3.x, vu qu'avec la rupture de compatibilité, la migration des projets Python 2.x existants pouvait s’avérer très coûteuse, pour les grands projets surtout.

    Guido van Rossum prévient également qu'après la date du 1er janvier 2020, Python 2.7 (la dernière version encore prise en charge dans la série 2.x) ne va bénéficier d'aucune mise à jour, pas même de correctif de sécurité du code source. « La façon dont je vois les choses pour [Python] 2.7 est que la fin de vie est 1er janvier 2020, et il n'y aura pas de mises à jour, pas même de correctifs de sécurité du code source, après cette date. Le support (fourni par les développeurs principaux, la PSF, et python.org) s'arrête complètement à cette date », a-t-il dit son message.

    Pour ceux qui voudront donc un support pour Python 2.7 après cette date, il faudra payer un support commercial chez un fournisseur. Les forks ne sont pas non plus à exclure vu que le projet est open source. « Mais les développeurs principaux ont travaillé assez longtemps, et la date de fin de vie de 2020 (une extension de la date initiale de 2015) a été annoncée avec suffisamment de temps et en fanfare que je ne me sens pas du tout mal d'arrêter le support [de Python 2.7] », explique Guido van Rossum.

    Pour ceux qui espéraient que Python 2.7 soit maintenu jusqu'à fin 2020 et qui utilisent encore cette version dans leurs projets, ils auront moins de temps pour migrer vers des versions prises en charge de Python 3.x. Il y aurait en effet de nombreuses entreprises dans ce lot. D'après Semaphore CI, un fournisseur de solutions d’intégration et de livraison continue, en 2017, Python 2.7 était encore utilisé dans 63,7 % des nouveaux projets commerciaux sur sa plateforme.


    Comme l'a suggéré le développeur Terry Reedy, en réponse au message de Guido van Rossum, le sort réservé à Python 2.7 pourrait être annoncé officiellement à la prochaine conférence PyCon prévue au mois de mai, pour mettre fin aux grandes questions et spéculations au sujet du support de Python 2.7.

    Source : Guido van Rossum via la liste de diffusion de Python

    Et vous ?

    Qu’en pensez-vous ?
    Utilisez-vous encore Python 2.7 dans vos projets ? Si oui, pourquoi ?
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  13. #13
    Rédacteur/Modérateur

    Je ne connais pas bien Python, donc je vais peut-être dire des bêtises, mais ma réaction à cette histoire en tant qu'observateur externe est la suivante :

    Python 3 est sorti en 2008, et est toujours minoritaire 10 ans après. Je crois qu'on peut appeler ça un échec... Visiblement une majorité des devs Python ne veulent pas de Python 3.
    Plutôt que d'abandonner la version la plus largement utilisée pour forcer les gens à passer à une version dont ils ne veulent pas, Guido Van Rossum ferait peut-être mieux de se remettre en question, et de sortir une version Python 4 qui tire les leçons des erreurs de Python 3.

  14. #14
    Membre extrêmement actif
    @Tomlev, Tu te trompes.
    Avec Python3 tu peux toujours développer de la même manière qu'en Python2.
    Python est dans le Top 3 ou 4 des langages les plus utilisés et ayant évolué.
    C'est un bon langage.
    Si la réponse vous a aidé, pensez à cliquer sur +1

  15. #15
    Rédacteur/Modérateur

    Citation Envoyé par hotcryx Voir le message
    @Tomlev, Tu te trompes.
    Avec Python3 tu peux toujours développer de la même manière qu'en Python2.
    Python est dans le Top 3 ou 4 des langages les plus utilisés et ayant évolué.
    C'est un bon langage.
    Je ne dis pas que c'est un mauvais langage, absolument pas. Je dis juste que si au bout de 10 ans la v3 reste beaucoup moins utilisée que la v2, il faut peut-être se poser des questions. Dans la plupart des langages, quand une nouvelle version sort, elle est (assez) rapidement adoptée et les versions plus anciennes tombent peu à peu dans l'oubli. Ça n'a pas été le cas avec Python 3, et maintenant son créateur veut forcer la main aux utilisateurs, ce que je trouve maladroit.

  16. #16
    Membre éclairé
    Citation Envoyé par tomlev Voir le message
    Je ne dis pas que c'est un mauvais langage, absolument pas. Je dis juste que si au bout de 10 ans la v3 reste beaucoup moins utilisée que la v2, il faut peut-être se poser des questions. Dans la plupart des langages, quand une nouvelle version sort, elle est (assez) rapidement adoptée et les versions plus anciennes tombent peu à peu dans l'oubli. Ça n'a pas été le cas avec Python 3, et maintenant son créateur veut forcer la main aux utilisateurs, ce que je trouve maladroit.
    Mais, ptet que les dev python sont flemmard pour passer à la v3 et apprendre les nouveautés puisque cette dernière change la manière de coder avec certaines api.

    Mais c'est une problématique. Apprendre python mais quelle version ???

    Leur erreur a été de supporter la v2 depuis maintenant 10 ans. Alors pourquoi passer à la v3 si la v2 est encore supportée?

    Donc on en reviens à ma première idée, flemmardise d'apprendre la v3.

  17. #17
    Expert éminent
    Citation Envoyé par tomlev Voir le message
    Je ne dis pas que c'est un mauvais langage, absolument pas. Je dis juste que si au bout de 10 ans la v3 reste beaucoup moins utilisée que la v2, il faut peut-être se poser des questions. Dans la plupart des langages, quand une nouvelle version sort, elle est (assez) rapidement adoptée et les versions plus anciennes tombent peu à peu dans l'oubli. Ça n'a pas été le cas avec Python 3, et maintenant son créateur veut forcer la main aux utilisateurs, ce que je trouve maladroit.
    Il ne force la main à personne, au contraire le maintien de la version 2 n'a que trop duré.

    La principale raison de se maintenir à la version 2, invoquée par des développeurs, était que les modules tiers qu'ils utilisaient n'étaient pas encore portés sous la version 3, mais, je l'ai dis hier dans un autre post, ces modules tiers qui ne tournent pas encore sous Python 3 sont, aujourd'hui, à considérer comme abandonnés.

  18. #18
    Membre confirmé
    Perso je développais en python 2 et je passe en python 3 depuis 1 ans (environ).
    Du coup mon retours d’expérience:
    pour des nouveaux projet faire du python 2 ou 3 c'est kiff kiff
    par contre ils ont changé des choses en internes :
    les str python 2 sont des byte[]
    la ou en python 3 ce sont des unicodes.
    ET ca mine de rien c'est un des plus gros problèmes.
    Beaucoup de lib scientifique utilisais des str comme tableaux de chr ou assimile mais maintenant ca ne marche plus du coup il faut réécrire les libs. certes il existe des outils comme 2to3 mais il sont insuffisant vue que python est extrêmement libre au niveau du codage ce genre d'outil ne marche pas (ex call de méthode privé d'un objet en étant hors du contexte de l'objet, ajout de fonction/méthode en live, code oû les variable sont généré après avoir catch exceptions, rien que récemment j'ai vue un code qui faisais des import juste après avoir fait un sys.path.insert(0, './routes'), du coup comment un outils pourrais comprendre ce qui ce passe en interne pour convertir a du python 3)

    Le gros problème aux passage à python 3 c'est pas le langage c'est les libraires qui ne veulent pas se convertir aux 3 ou qui trouve ça trop longs.
    Du coup je suis pour cet arrêt de support, si les gens sont trop con pour pas suivre les évolutions , il faut les prendre par la peaux des fesses et leur dire arrêter vos connerie, vous suivez l’évolution des techno ou vous vous barrez.
    lorsqu'on doit faire un docker avec python 2 et python 3 et faire des subprocess.call("python2 prog.py") car la librairie ne marche pas en python 3 on pense marché sur la tête.

    et puis les nouveauté de python 3 sont quand mème pratique ... rien que le typage des variable c'est cool pour documenter (oui c'est que de la doc mais ça aide énormément avec un IDE derrière)

  19. #19
    Membre averti
    Un changement dans les types de données (str / byte[]) fondamentaux, c'est une grosse brisure qui peut impliquer beaucoup de ré-écriture.
    La solution est peut être plus simplement de changer de langage, surtout dans les nombreux cas où python n'était qu'une couche d'encapsulation.

  20. #20
    Expert éminent
    Citation Envoyé par VinsS Voir le message
    ces modules tiers qui ne tournent pas encore sous Python 3 sont, aujourd'hui, à considérer comme abandonnés.
    Ce n'est pas parce qu'un module développé sous Python 2 n'a plus de mise à jour qu'il est à jeter à la poubelle.
    Certains modules sont complets, et ne nécessitent aucun rajout.
    Le seule souci est en effet que personne ne les porte sous Python 3 et que le créateur ne donne plus signe de vie.
    Sauf que quand on a de la production qui tourne avec ce genre de chose et qu'on a pas l'équipe faite pour porter la librairie... Bah on continue bon gré malgré sous Python 2.

    La richesse de Python c'est ses librairies.
    Et malheureusement c'est ce qui lui fait aussi le plus mal depuis l'écart entre Python 2 et Python 3.

    Note : je fais parti des méchants petits canards qui utilisent Python 2.7 et qui continueront à l'utiliser.

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

###raw>template_hook.ano_emploi###