Autor: Jonathan Ballet Datum: To: guilde Betreff: Re: Pour un bon départ en Python
Le Tue, 15 May 2007 02:29:34 +0200,
Olivier Guerrier <olivier@???> a écrit :
> Bonjour,
Salut,
> J'ai un petit projet a réaliser, et j'ai envie d'en profiter pour me
> mettre à Python.
En voilà une bonne idée :)
> Les principales questions que je me pose concernent les librairies: où
> les trouver ?
La référence, c'est CheeseShop. C'est un peu l'équivalent de CPAN pour
Perl ou de Pear pour php. Pour installer des bibliothèques issues de
CheeseShop, tu peux utiliser easy_install (fourni avec le paquet
'setuptools' de ta distribution sûrement), qui installe tout comme un
grand :)
> comment choisir entre 2 qui font (ou ont l'air de faire)
> la même chose ?
Ben là, ça va être pareil que pour les autres langages : comment
ferais-tu en php ou en C ? :)
L'expérience aide pas mal, allez voir ce qui se fait dans d'autres
projets, se renseigner un peu et lire des critiques, c'est bien aussi.
Après, sur différences bibliothèques que j'ai pu utiliser, qui
faisaient la même chose, chacunes ont leurs avantages et leurs
inconvénients. A toi d'évaluer par rapport à ton application, et
suivant comment ton "feeling".
> y'a t'il des pièges à éviter dans le choix d'une
> librairie ? etc ... Plutôt que de partir dans le vague, je vais
> détailler un peu mon projet, histoire de discuter sur du concret:
>
> Interface: ligne de commande (démon)
> Synopsis:
> - le programme récupère ses paramètres d'une base de données SQL.
> - Il scanne un compte imap à la recherche de certains messages
> - Il en détache les pièces jointes et lance un traitement (interne
> et/ou externe) dessus.
> - Il renvoit un mail de synthèse, avec éventuellement une pièce jointe
> attachée.
>
> J'ai donc besoin de plusieurs librairies:
> - gestion d'un compte imap (ouverture, effacement)
module imaplib (dans la bibliothèque standard de Python)
> - interface base de données (ADOdb ? je dis ça parce que je l'utilise
> en php...)
SQLObject si tu cherches un ORM simple, SQLAlchemy sinon.
Si tu veux pas d'ORM, les bibliothèques d'accès à une base de données
en Python disposent d'une interface normalisée (DB-API2), qu'on peut
rapidement comparer à ADOdb.
> - lecture du corps du mail (le plus portable possible au niveau des
> encodages possibles) pour extraction des PJ.
Je crois que dans la bibliothèque standard ya des trucs pour manipuler
les emails.
> - génération et envoi d'un mail.
module smtplib (bibliothèque standard également)
> Quelles librairies utiliseriez vous ? (et éventuellement pourquoi,
> comme ça la prochaine fois je saurais choisir tout seul...)
A priori, toujours commencer par regarder ce qu'il y a dans la
bibliothèque standard ("stdlib") pour voir si tu peux y trouver quelque
chose qui te conviennes, on en redécouvre tout les jours.
Après, ben il faut se documenter, et ne pas hésiter à poser des questions si besoin (comme tu viens de le faire :)
> Et si vous avez des conseils à me donner, j'écoute.
Si tu fouilles un peu dans les archives de la liste, tu trouveras des
messages (datant d'il y a moins de deux mois je crois) de quelqu'un qui
cherchait à apprendre Python. On avait donné des liens avec des
tutoriaux et tout, si jamais ça peut t'intéresser.