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

Contribuez Python Discussion :

[OLD] FAQ Python / Sources Python - Participez


Sujet :

Contribuez Python

  1. #1
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut [OLD] FAQ Python / Sources Python - Participez
    FAQ Python

    Visitez la la FAQ Python !. Elle contient actuellement plus de 70 Q/R mais s'enrichît peu à peu

    Vous pouvez poster ici à la suite les questions et réponses à ajouter à la future F.A.Q Python. Vous pouvez également contribuer à l'évolution de la faq en proposant des corrections de bugs / orthographe ...

    Règles importantes pour participer :

    -> Si vous proposez une question, vous devez impérativement proposer la réponse qui va avec ... (les questions sans réponses seront supprimées)

    -> Un code source n'est pas une réponse en soit. Il est grandement apprécié de rédiger un paragraphe pour approfondir le sujet, apporter des précisions sur ce qu'on fait, pourquoi on fait comme ça, etc. On peut aussi en profiter pour inviter le lecteur à lire des questions/réponses dans des domaines proches ...

    -> Un code source doit être court : aller a l'essentiel en 5 ou 6 lignes.

    -> En dessous des réponses sont souvent proposés des liens, soit vers l'extérieur, soit vers des questions en rapport. Pensez à indiquer les liens utiles pour que le lecteur puisse approfondir.

    -> Dans certains cas, en plus des exemples court dans la réponse, on peut ajouter un programme complet.

    Merci à tous pour vos contributions ...
    Bonne rédaction.

    Sources Python

    Visitez la page des sources Python !

    Cette nouvelle page à pour but de référencer de façon claire tous les sources Python présents sur le site de www.developpez.com. La présentation est identique à celle de la FAQ et devrait donc vous être familière, elle inclut de plus un moteur de recherche propre à cette page.

    Vous avez sans doute envie d'apporter votre contribution.
    Pour cela, il vous suffit de nous faire parvenir par email une archive ZIP contenant les sources que vous désirez mettre à disposition de la communauté.

    Vous pouvez encore nous indiquer dans votre mail, par MP ou simplement en postant un message à la suite de celui-ci, une URL à laquelle nous pourrons facilement télécharger votre ZIP.

    Nous vous demandons simplement de nous indiquer soit dans le corps de votre mail soit dans un fichier joint à votre archive une description qui devra reprendre les informations suivantes:

    1) [SCR] Titre explicite pour le source

    2) votre nom (sauf si vous voulez que l'auteur apparaisse avec votre pseudo)

    3) Votre page : URL vers votre page Web (si celle-ci est hébergée par developpez.com) - Une demande de création de domaine pourra se faire le cas échéant (ou bien le ftp du site hébergera la ressource)


    4) Download : Chemin où se trouve l'archive ZIP du source (si l'archive n'est pas jointe au mail que vous nous envoyez.)

    5) Descriptif : Décrire en quelques mots le code de l'archive.

    6) Conditions de test: version de Python et des Bibliothèques utilisées ainsi que l'OS à partir duquel le source a été testé.

    7) Vos remarques et liens éventuels
    Si vous avez des remarques, commentaires ou si vous trouvez qu'il y a des points qui manquent, etc... merci de laisser un message à la suite.

    Merci.
      0  0

  2. #2
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    : J'ai une "indentation error" alors que mon code est bien indenté

    Bien vérifier qu'on n'a pas mélangé espaces et tabulations, cela pouvant amener des "indentation error". Un bon conseil : régler son éditeur pour qu'il remplace les tabulations par des espaces.

    Astuce pour vi, donnée par toutpt :
    Citation Envoyé par toutpt
    En utilisant l'éditeur "vi" il est très facile de corriger un problème d'indentation:
    tappez en mode normal /\t
    ce qui recherche le caractère \t dans le document. Ce caractère représente une tabulation
    Vous pouvez ensuite faire une substitution de tabulation par des espaces dans tout le document:
    1,$s/\t/\ \ /g
    quelques explication:
    1,$ -de laligne 1 à la fin du fichier
    s/X/Y/ - substitue X par Y
    g - est une option qui dit de répéter sur la ligne si ya plusieurs occurence de X
    : [Zope] Dans du code python pour Zope, je vois un appel de méthode qui ne correspond à aucune méthode de la classe considérée, ni de ses classes ancêtres ?

    Ne pas oublier le principe d'acquisition, qui fait qu'en plus d'hériter des objets (méthodes) par héritage, on peut récupérer automatiquement les objets de la classe qui contient l'objet courant (et par transitivité, de tous les objets de tous les conteneurs précédents).

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class B:
      pass
     
    class A:
      contenu = B()
      def ok(self):
        print "OK"
     
    a = A()
    Ici, appeler a.ok() ou a.contenu.ok() donne le même résultat.

    Le principe d'acquisition dans le Zope Book : http://zope.org/Documentation/Books/ZopeBook/2_6Edition/Acquisition.stx
      0  0

  3. #3
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    [Zope]Installation en local sous Zope d'une connection à la librairie MySQL sous windows
    (il est supposé que vous ayez aussi installé un serveur MySQL (je conseille EasyPhp qui à l'avantage d'avoir une configuration automatique))

    - installer python 2.3.4 (typiquement dans C:\Python23)
    - installer MySQL pour python (http://sourceforge.net/project/showf...ckage_id=15775)
    - installer Zope 2.7.1 (typiquement c:\Program Files\Zope-2.7.1 et c:\Zope-Instance)
    (ne pas cocher la case "Run your zope as a Windows Service")
    - télécharger et copier ZMySQLDA 2.0.8(http://sourceforge.net/project/showf...ckage_id=15779) dans le répertoire "C:\Program Files\Zope-2.7.1\lib\python\Products
    - editer le fichier runzope.bat (qui se trouve dans le répertoire c:\Zope-instance\bin en mofiant la première ligne (@set PYTHON=...) et en remplacant par le chemin d'accès à python.exe principal (typiquement C:\Python23\python.exe))
    (cette manipulation doit permettre en plus de pouvoir utiliser sous zope n'importe quel librairie que vous avez vous même installé sous python)

    Puis lancer le fichier runzope.bat avant de vous connecter à Zope.

    Maintenant, vous pouvez ajouter un "Z MySQL Database Connection"
      0  0

  4. #4
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    [Zope]Se connecter en locale à une base MySQL sous Zope sous Windows

    J'ai eu un bogue en essayant directement de me connecter à une de mes bases MySQL (avec l'erreur: Error Type: AttributeError et Error Value: server_capabilities)
    Voilà la procédure qui marche (enfin ca le fait chez moi, je l'ai trouvé en faisant une recherche sur google mais j'ai pas trop compris pourquoi ca fonctionnait)

    - Editer le fichier db.py qui se trouve dans le répertoire C:\Program Files\Zope-2.7.1\lib\python\Products\ZMySQLDA
    - Mettre en commentaire la ligne 183 (self.transactions = self.db.server_capabilities & CLIENT.TRANSACTIONS)
    - copier l'instruction self.transactions = 0 juste après cette ligne (juste avant le test)

    Normalement, vous pouvez alors vous connecter à vos propres bases.
      0  0

  5. #5
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    Vu que je suis intéressé pour manipuler python sur des fichiers excel, si y'a des gens qui s'y connaissent, qu'ils n'hésitent pas à compléter ce que je propose:

    Il est d'abord nécessaire de télécharger la librairie win32com
    (https://sourceforge.net/project/show...ckage_id=79063)

    Ouvrir un fichier excel
    import win32com.client
    MaFeuille = win32com.client.Dispatch('Excel.Application')
    MaFeuille.Workbooks.open(MonFichier.xls)


    Accéder à un élément d'une feuille
    MaFeuille.ActiveSheet.Cells(lig,col).Value
      0  0

  6. #6
    Membre habitué
    Inscrit en
    Mars 2002
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 129
    Points : 184
    Points
    184
    Par défaut
    Télécharge les exemples du livre PythonWin32 ftp://ftp.oreilly.com/examples/pythonwin32/ il y a des classes toutes faites pour manipuler excel.
    "Un langage de programmation est sensé être une façon conventionnelle de donner des ordres à un ordinateur (...). Il n'est pas sensé être obscure, bizarre et plein de pièges subtils (ça, ce sont des attributs de la magie)." D.Small
      0  0

  7. #7
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    BDD Gadfly

    Création d'une base de données gadfly
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import gadfly 
    connexion = gadfly.gadfly() 
    connexion.startup( "mybase", "monchemin/" )
    Création d'une table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    curseur = connexion.cursor() 
    requete = "create table tabletest ( champ1 varchar, champ2 integer )" 
    curseur.execute( requete ) 
    connexion.commit()
      0  0

  8. #8
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    BDD MySQL -MySQLdb

    se connecter à une base de données MySQL:
    import MySQLdb
    self.db= MySQLdb.connect(host="localhost", user="root",passwd="", db="MaBase")

    création d'un objet Cursor représentant l'ensemble des résultats d'une requête: self.cursor = self.db.cursor()
    Executer une requête SQL: self.cursor.execute(strrequete)
    Récupérer le nombre d'enregistrements d'une requête: self.cursor.rowcount
    Récupérer sous forme d'une liste de tuples les enregistrements résultat de la requête: self.cursor.fetchall()
      0  0

  9. #9
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 37
    Points : 45
    Points
    45
    Par défaut
    : Comment connaitre les super classes d'une classe donnée ?

    L'attribut __bases__ contient la liste des superclasses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class Toto:
      def __init__(self):
         self.attribut = 1
     
    class Titi(Toto): #la classe Titi hérite de Toto
      def __init__(self):
        Toto.__init__(self)  #appel au constructeur de la superclasse
         self.un_autre_attribut = 0
     
    print Titi.__bases__ #pour montrer que ceci est une liste
    instance = Titi()
    for classe_of_my_instance in instance.__class__.__bases__:
      if classe_of_my_instance == Toto:
        print "mon instance est comme une instance de Toto"
    Balises [Code] rajoutées par Guigui_
      0  0

Discussions similaires

  1. [Open-Source][Python]Snake like
    Par the_dorian dans le forum Mon programme
    Réponses: 3
    Dernier message: 21/03/2008, 11h22
  2. enregistrer/lancer un code source python
    Par laulau69 dans le forum Général Python
    Réponses: 7
    Dernier message: 21/01/2006, 10h05

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