IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Python Discussion :

Regrets sur la version de Python employée


Sujet :

Python

  1. #1
    Membre habitué Avatar de memento80
    Homme Profil pro
    Boulot : ne rentre pas dans une case
    Inscrit en
    Novembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Boulot : ne rentre pas dans une case
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2004
    Messages : 163
    Points : 125
    Points
    125
    Par défaut Regrets sur la version de Python employée
    Bonjour,

    J'ai appris, ces derniers temps, le langage Python en version 3.2 autour d'un début de projet sans véritablement de grandes ambitions. Au début, ce fut juste pour apprendre ce langage de programmation et au fur et à mesure, il s'avère que ce projet s'est suffisamment développé pour pouvoir être exploité sous un autre "format" qu'à l'origine.
    Aujourd'hui, ce projet se résume à quelques programmes Python v3.2 de quelques dizaines de milliers de lignes, une interface web et une base de données.

    En cherchant un hébergeur Web pour pouvoir accueillir cette réalisation, j'en ai trouvé un en mutualisé qui, sur le papier, me semblait adéquat.
    J'ai donc, pour commencer, posé la question de la version de Python proposée sur leurs serveurs, et c'est là la faille pour laquelle je craignais être confronté, la version proposée par cet hébergeur est Python v2.6.

    Bon.. comment dois-je réagir ?

    1 - Pleurer toutes les larmes de mon corps en maudissant le jour où je me suis lancé à développer en Python sans prendre véritablement garde à la version à utiliser (et à l'époque, à tort, il était naturel pour moi de prendre la dernière version de ce qu'on me proposait).
    2 - Reprendre, en soupirant longuement, mes dizaines de milliers de lignes de code et essayer de faire en sorte que ça tourne en version v2.6 (débutant oblige, le code n'est pas si compliqué mais je doute de la faisabilité d'une telle opération).
    3 - J'ai entendu parlé d'un "3to2" qui permettrait de "downgrader" le code écrit en v3 dans une version en v2. Quelqu'un aurait-il déjà utilisé cet hypothétique outil "miracle" ? Et quel serait le pourcentage de succès que je pourrais espérer ?
    4 - Cette proposition d'hébergeur étant la seule en mutualisée que j'ai trouvé adéquat pour ma solution, devrais-je reprendre mes recherches et dénicher un autre hébergeur mais cette fois en dédié quitte à payer un peu plus cher (mais mon budget est assez limité malheureusement) ?
    5 - Autres... ?

    Merci d'avance pour votre aide.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 328
    Points : 240
    Points
    240
    Par défaut
    Bonjour,

    Pour ma part, je suis encore en 2.7 mais je doute franchement qu'il soit vraiment insurmontable d'adapter ton code pour la version 2.6. Je ne suis pas sûr qu'il y ait tant que ça de modifications à faire. Je te conseillerais simplement d'installer la version 2.6 sur ton ordi et d'essayer ton programme afin de voir où ça plante. Aussi bien, tu n'auras pas grand-chose à modifier...

    Mais peut-être qu'un expert pythonesque te conseillera une autre piste...

    A +

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Dans tous les cas, c'est du boulot. Pour apprécier "combien" et "comment" le réaliser de façon sûre, il faudrait regarder les constructions et modules utilisés.

    Pas tous, mais seul vous savez ce que vous avez fait.

    Vous avez 2 avantages:
    - comme vous être débutant, votre code ne devrait pas utiliser trop de "features" qui craignent excepté "unicode".
    - Python 3 est sorti depuis pas mal de temps déjà et pleins de méthodes, outils et recommandations ont été mises à disposition par ceux qui ont tenté l'expérience.

    Lisez l'entrée du blog. Elle contient plein de pointeurs vers des méthodes/tutos/modules qui peuvent "aider".

    Une fois que vous avez identifié les moins mauvaises stratégies (il y en a toujours plusieurs à appliquer), il faudra apprécier "combien" de temps.

    Il faudrait aussi retravailler la couverture des tests de non-régression: à la main ou semi-automatique, il faut bien tester.

    En tous cas, bon courage!
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre habitué Avatar de memento80
    Homme Profil pro
    Boulot : ne rentre pas dans une case
    Inscrit en
    Novembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Boulot : ne rentre pas dans une case
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2004
    Messages : 163
    Points : 125
    Points
    125
    Par défaut
    Merci pour les conseils et liens.
    Je pars donc dans une longue croisade qui ne sera pas de tout repos..
    On va déjà commencer par le début et effectivement tenter d'identifier, en glanant des informations à droite et à gauche, la "moins mauvaise stratégie".

    Allez, en route !

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 685
    Points : 30 974
    Points
    30 974
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Moi il m'est arrivé à peu près la même chose. Une idée qui nait, choix d'un langage qui pourrait convenir. Un pote me parle de Python donc je me dis "pourquoi pas" et aujourd'hui le projet pèse plus de 60000 lignes et a été implanté dans plusieurs sites français.

    Toutefois, moi à l'époque c'était en 2007 donc Python 2.5. Aujourd'hui c'est Python 2.7 mais cela ne pose aucun souci (même si certaines modifs faites depuis ne passeraient pas sous 2.5).

    Ma principale inquiétude c'est surtout quand Python v2 sera tellement devenu obsolète et en passe de disparaitre que je me dis que j'aurai le même problème que toi. Enfin c'est j'espère pas pour demain...

    Toutefois les conseils de Ggamer et Wiztricks me semblent sensés. Installer un Python v2 et tester ton code. De plus tu parles de "3to2" et on le trouve ici http://wiki.python.org/moin/3to2. Donc tu peux essayer de passer tes modules via cet outil et regarder s'ils fonctionnent encore de l'autre coté. Normalement, si tu as bien programmé tes modules, tu leurs as tous insérés un bloc if __name__ == "__main__" permettant de les tester de façon individuelle (enfin c'est ce que moi j'ai fait avec les miens).

    D'un autre coté peut-être que ton hébergeur envisage de son coté de proposer aussi prochainement un python v3. D'ailleurs en tapant dans la poubelle gogol, je trouve immédiatement un hébergeur qui propose Python 3.1 => https://www.alwaysdata.com donc sûrement qu'il doit y en avoir d'autres...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Membre habitué Avatar de memento80
    Homme Profil pro
    Boulot : ne rentre pas dans une case
    Inscrit en
    Novembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Boulot : ne rentre pas dans une case
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2004
    Messages : 163
    Points : 125
    Points
    125
    Par défaut
    Merci pour ce témoignage... et pour cet hébergeur que je ne connaissais pas.
    Pourtant, j'ai l'impression d'en avoir regardé une liste longue comme le bras. La recherche d'hébergeur est une vraie jungle..
    J'attends une réponse de cet hébergeur et, en fonction de la réponse, peut-être que je n'aurai pas ce "retour arrière" à réaliser.

    Je vous tiens au courant.

  7. #7
    Membre habitué Avatar de memento80
    Homme Profil pro
    Boulot : ne rentre pas dans une case
    Inscrit en
    Novembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Boulot : ne rentre pas dans une case
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2004
    Messages : 163
    Points : 125
    Points
    125
    Par défaut
    Bonjour,

    Suite et pas fin de mon problème :

    Je suis donc allé chez alwaysdata comme vu précédemment.
    Malheureusement, malgré leur réactivité sur mes problèmes, je déchante depuis pour des soucis d'installation. Il s'avère qu'ils proposent bien Python 3.1 mais... de base, sans les modules qui m'intéressent contrairement à Python 2.6 pour lequel tout est installé.

    En faisant bref, pour arriver à mes fins, ils m'ont conseillé 2 solutions : soit de faire tourner mes scripts dans un environnement python2.6 (Noooooooooon ! ), soit d'installer dans le répertoire de mon compte, python3.3 (.... ah ? ... bah pourquoi pas éventuellement si c'est possible..).

    J'ai quand même tenté, comme évoqué précédemment, de voir ce que donnait mes scripts en Python2.6, et effectivement, à première vue (et malheureusement, qu'à première vue), mes scripts tournaient bien sous Python2.6... mais, passé la première fausse joie, en fouillant un peu plus, tous les résultats sont faux... et en fouillant encore plus, la principale cause sont les calculs qui arrondissent en version 2.6 alors qu'ils ne sont pas arrondi en version 3.x.. (ex : 53/100 donne 0 en python 2.6).
    Comme j'ai une tonne de calculs, j'étais déjà sur le rebord de ma fenêtre à l'idée de tous les refaire en version 2.6..

    Reste la solution d'installer moi-même python3.3 dans le répertoire de mon compte.
    Bon, ne connaissant pas l'environnement de mon hébergeur sous Linux (mon environnement de test étant mon PC perso... sous Windows), ça fait quelques heures maintenant que j'essaye d'installer Python3.3 et les modules qui m'intéressent.
    En fait, j'ai bien installé Python3.3 (mode console accessible) mais je n'arrive pas à installer les modules complémentaires que je veux.. J'en vois 2 principalement : PIL et MySQLdb.
    Et là, peut-être que certains vont m'injurier mais il parait que MySQLdb n'est pas compatible avec la version 3 de Python. En tout cas, à l'époque, je n'avais pas vu et je l'ai installé sur mon PC sans rencontrer de problème.

    Donc, pour en venir au cœur de mon problème, si je veux rester sur l'optique d'installer ma version 3.3 de Python, comment dois-je faire pour installer proprement Python et ses modules (en me concentrant dans un premier temps sur PIL.. je verrai après si je fais bien d'insister avec MySQLdb) sachant que je dois installer ça dans un répertoire pour lequel j'ai les droits (pas de /usr/lib/xxxx mais mon répertoire home du serveur pour le coup) ?
    On va surement de me dire de chercher sur internet, docs and co, mais j'ai fait plusieurs tentatives sans y arriver (par exemple PIL installé dans un répertoire mais pas exploitable visiblement pour Python - ImportError: No module named 'PIL' )..
    J'ai suivi notamment le lien suivant : http://docs.python.org/3/install/index.html et les options d'installation.

    Peut-être que pour guider un peu plus l'aide dont j'aurais besoin, ce serait probablement que je ne dois pas saisir exactement l'arborescence idéale que je devrais avoir en installant Python dans mon répertoire $HOME. Du coup, je n'arrive probablement pas à installer les modules dans le bon endroit (avec les bonnes options d'installation de modules).

    Merci d'avance à tous les bidouilleurs qui sont plus bidouilleurs que moi (et visiblement, vu mon piètre niveau..)

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    mais, passé la première fausse joie, en fouillant un peu plus, tous les résultats sont faux... et en fouillant encore plus, la principale cause sont les calculs qui arrondissent en version 2.6 alors qu'ils ne sont pas arrondi en version 3.x.. (ex : 53/100 donne 0 en python 2.6).
    Dans l'URL que je vous ai donné, sont mentionné ces import magiques:
    from __future__ import print_function, unicode_literals
    from __future__ import absolute_import, division
    C'est division qui rend 3.x-like la division des entiers en 2.6.

    comment dois-je faire pour installer proprement Python et ses modules (en me concentrant dans un premier temps sur PIL.. je verrai après si je fais bien d'insister avec MySQLdb) sachant que je dois installer ça dans un répertoire pour lequel j'ai les droits (pas de /usr/lib/xxxx mais mon répertoire home du serveur pour le coup) ?
    Je ne sais plus s'il est simple de reconfigurer un package pour qu'il s'installe ailleurs que ce qui a été prévu par défaut.
    S'il faut recompiler Python, la doc est
    Et s'il faut recompiler les packages, la doc est

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

  9. #9
    Membre habitué Avatar de memento80
    Homme Profil pro
    Boulot : ne rentre pas dans une case
    Inscrit en
    Novembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Boulot : ne rentre pas dans une case
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2004
    Messages : 163
    Points : 125
    Points
    125
    Par défaut
    Merci pour ces astuces. J'ai bien été sur le lien que vous m'aviez fourni mais, peut-être que la langue de Shakespeare ne m'y pas aidé (à mon grand désarroi), je suis probablement passé à côté de ces modules.

    Donc ce fut "presque parfaitement" magique.. (j'ai encore eu une fausse joie) mais ça va effectivement dans le bon sens pour pouvoir utiliser mes scripts en python2.6.

    En fait, j'ai rencontré l'erreur suivante sur un script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 2: ordinal not in range(128)
    Je me suis rapporté à la doc (que l'on trouve aussi ici après recherche sur les modules en question : http://docs.python.org/3/howto/pyporting.html) mais je n'ai pas tout compris sur le "unicode_literals".
    Bref, je l'ai enlevé pour ne garder que l'essentiel : le "division".

    Maintenant qu'il n'arrondit plus (parfait !), dans mes scripts, il valorise bien certains résultats de calcul en float (et non plus en int)... mais, étape suivante, il ne veut plus convertir en Décimal directement ma variable de type float..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TypeError: Cannot convert float to Decimal.  First convert the float to a string
    Il faudrait que je le convertisse en string avant ?!? (soupir) On va voir si je peux éviter ça.. Je m'en retourne à mes recherches.

    Du coup, je joue toujours sur les deux tableaux : faire fonctionner mes scripts en version 2.6 ou/et installer python3.3 dans le répertoire de mon compte.

    Je suis toujours preneur de conseils en parallèle pour abréger mes souffrances.

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2013
    Messages : 37
    Points : 67
    Points
    67
    Par défaut
    Tu peux aller voir sur webfaction.

    Ils ont python de 2.4 à 3.3. (http://docs.webfaction.com/software/python.html). Tu peux y installer ce que tu veux. Le tout pour un prix raisonnable.

  11. #11
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 180
    Points : 321
    Points
    321
    Par défaut
    Bonjour,

    Hé oui, la facilité de convertir directement un float en Decimal est propre
    à la série 3 (je ne sais plus quelle version). Laquelle a été porté sur python 2.7
    (mais pas 2.6 ).

    Donc, tu es bon pour repasser toute tes conversion en Decimal ou bien de travailler directement dans cette classe (en pus ce sera bien plus préçis)

  12. #12
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 685
    Points : 30 974
    Points
    30 974
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par memento80 Voir le message
    mais, étape suivante, il ne veut plus convertir en Décimal directement ma variable de type float..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TypeError: Cannot convert float to Decimal.  First convert the float to a string
    Il faudrait que je le convertisse en string avant ?!? (soupir) On va voir si je peux éviter ça.. Je m'en retourne à mes recherches.
    Salut
    Effectivement le float to Decimal c'est pas automatique. Mais tu peux t'en sortir (assez) facilement
    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    f=3.1415926
    d=decimal.Decimal("%f", f)    # Au lieu de decimal.Decimal(f)
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  13. #13
    Membre habitué Avatar de memento80
    Homme Profil pro
    Boulot : ne rentre pas dans une case
    Inscrit en
    Novembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Boulot : ne rentre pas dans une case
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2004
    Messages : 163
    Points : 125
    Points
    125
    Par défaut
    Citation Envoyé par Delbor
    Tu peux aller voir sur webfaction.

    Ils ont python de 2.4 à 3.3. (http://docs.webfaction.com/software/python.html). Tu peux y installer ce que tu veux. Le tout pour un prix raisonnable.
    Merci. Ca servira peut-être à d'autre qui tomberont sur ce post. Pour ma part, je sens que je fleurte avec le bout du tunnel donc je vais plutôt persévérer pour l'instant dans cette voie... plutôt que de recommencer avec un autre hypothétique "tunnel". Bon le problème, c'est que ça fait plusieurs jours que j'ai l'impression de fleurter avec le bout du tunnel, et à chaque fois, hop ! nouveau problème..

    Citation Envoyé par chticricri
    Donc, tu es bon pour repasser toute tes conversion en Decimal ou bien de travailler directement dans cette classe (en pus ce sera bien plus préçis)
    Il y a quelques mois, je travaillais quasiment exclusivement en Decimal. Je me suis rendu compte en activant les statistiques, que mon programme perdait énormément de temps en, ce qui me paraissait une espèce de conversion implicite de mes variables à chaque fois qu'il en croisait une déclarée en "Decimal".
    Du coup, j'ai eu l'idée de modifier mon programme (ça m'a pris un temps fou) pour travailler qu'avec des variables déclarée en "int"... Et la fin de mon programme seulement, je divisais le résultat pour obtenir le résultat en "Decimal".
    En gros, ça donnait le schéma suivant :
    Donnée Décimale provenant de base ==> multipliée par un puissance 10 pour travailler en "int" ==> calculs ==> Divisée par le même puissance 10 pour reconvertir en Décimal ==> Insertion du nouveau résultat en base de données.
    Résultat : temps de traitement divisé par 5 !

    Pour mon problème actuel, j'ai un peu regardé les restes de "Decimal" qu'il me reste. Je pense que je peux m'en passer et travailler en "float". La perte de précision serait minime et n'impacterait pas mes résultats (pour le maximum, je ne regarde que 5 chiffres après la virgules).
    Citation Envoyé par Sve@r
    Effectivement le float to Decimal c'est pas automatique. Mais tu peux t'en sortir (assez) facilement
    Code Python :
    f=3.1415926
    d=decimal.Decimal("%f", f) # Au lieu de decimal.Decimal(f)
    ... ou faire ça effectivement, ça pourrait être une solution aussi. Merci

    Sinon, pour la deuxième partie (installation Python3.3 dans le répertoire de mon compte), j'ai avancé pour pouvoir exploiter mes modules. Mon inexpérience oblige, je ne connaissais pas l'existence de la variable PYTHONPATH... Il me suffisait de consulter... la FAQ pour ça (Eh oui ! On en oublie parfois l'essentiel quand on se fourvoie dans tous les sens).

    Par contre, pour la suite de ce soucis, évidemment, l'incompatibilité avec Python3 m'empêche d'installer le module MySQLdb.
    Je suis donc en recherche pour modifier mes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    db = MySQLdb.connect(host='localhost', user='root', passwd='', db='database')
    par un équivalent compatible avec Python 3.

    Du coup, j'avance toujours et sur mes 2 pistes de recherche... ce qui est assez intéressant et bien formateur, j'avoue.

  14. #14
    Membre habitué Avatar de memento80
    Homme Profil pro
    Boulot : ne rentre pas dans une case
    Inscrit en
    Novembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Boulot : ne rentre pas dans une case
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2004
    Messages : 163
    Points : 125
    Points
    125
    Par défaut Suite et fin
    Pour clore ce sujet et pour les suivants qui auraient ce même genre de soucis, je suis finalement resté sur ma deuxième solution qui consistait à installer ma propre version de Python.

    J'ai vu au final remplacer mes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    db = MySQLdb.connect(host='localhost', user='root', passwd='', db='database')
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import mysql.connector
    db = mysql.connector.connect(host='localhost', user='root', passwd='', db='database', buffered=True)
    Le seule perturbation que cela m'a engendré, ce sont mes déclarations de curseurs que j'ai dû modifier.
    Apparemment avec MySQLdb, on peut utiliser un seul et même curseur pour faire à la fois de la recherche et de la mise à jour. Tandis qu'avec mysql.connector, il faut bien différencier les 2 différents curseurs.

    Voilà. Depuis tout roule.
    Merci à tous ceux qui m'ont aidé.

    A+

  15. #15
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 685
    Points : 30 974
    Points
    30 974
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par memento80 Voir le message
    Apparemment avec MySQLdb, on peut utiliser un seul et même curseur pour faire à la fois de la recherche et de la mise à jour.
    Exact et c'est pareil avec psycopg2 pour Postgres. Toutefois j'ai l'habitude de créer un curseur avant chaque requête puis le fermer après (comme pour un fichier) comme ça pas embêté...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. cohabitation de deux versions de python sur un meme système
    Par roadbecri dans le forum Général Python
    Réponses: 15
    Dernier message: 26/11/2014, 23h08
  2. [PEAR][Mail] [Mail_Mime] problème sur la version texte de mon mail
    Par yiannis dans le forum Bibliothèques et frameworks
    Réponses: 13
    Dernier message: 21/12/2005, 15h50
  3. Réponses: 16
    Dernier message: 02/12/2005, 00h19
  4. Sur quelle version du framework .Net se base Delphi 2006
    Par scornille dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 14/10/2005, 23h31
  5. [MySQL] Je cherche à faire fonctionner la fonction ADDTIME sur la version 4.0.13
    Par SURF52 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/09/2005, 16h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo