PROJET AUTOBLOG


Sam & Max: Python, Django, Git et du cul

Site original : Sam & Max: Python, Django, Git et du cul

⇐ retour index

Mise à jour

Mise à jour de la base de données, veuillez patienter...

Message de service aux débutants en Python 24

samedi 20 décembre 2014 à 13:08

Ces informations sont éparpillées sur le net, et même sur le blog. Mais c’est un peu le package que tout dev Python qui se lance doit apprendre petit à petit. Alors je vais vous épargner les recherches.

Ne prenez pas ça comme une checklist qu’il faut impérativement faire avant de programmer. Coder est le plus important pour apprendre. Tout le reste est facultatif. Mais cet article liste des raccourcis qui vous seront utiles au fur et à mesure de votre progression.

Réponse aux grandes questions de la vie

J’installe Python avec quoi ?

Sous Linux, avec votre gestionnaire de paquet. Mais souvenez-vous que la 2.7 est installée par défaut.

Sous Mac, avec homebrew. Mais souvenez-vous que la 2.7 est installée par défaut. Vous aurez besoin de GCC. Mais pas besoin de télécharger xcode pour ça, il y a des solutions légères.

Sous Windows, utilisez miniconda. L’installeur officiel est pas mal, mais miniconda vous aidera beaucoup pour plein de choses, comme installer facilement les extensions compilées type scipy ou QT. Et cochez toujours l’option pour ajouter Python au SYSTEM PATH, sinon il faudra le faire à la main et c’est relou.

Python 2 or Python 3 ?

Python 3 sauf si :

Dans tous les cas, souvenez-vous :

Mais c’est quoi cette histoire de CPython, Pypy, IronPython, Jython, Julia, Cython, Nuitka, Hope…

Y a combien de Python bordel ?

Pour vous, un seul : CPython. C’est-à-dire ce que les gens appellent “Python”.

Vous pouvez ignorer le reste. Vous n’avez pas à vous inquiéter de devoir utiliser un autre un jour, devoir passer à un autre, etc. Ce sont juste des bonus qui peuvent aider des gens dans des cas particuliers, rien d’indispensable.

Pip ou easy_install

pip. Installez toujours pip. Utilisez toujours pip. Apprenez à bien utiliser pip avec toutes ses options.

Et souvenez-vous qu’on peut installer un module pour une version de python en particulier en faisant pythonX -m pip ou sous windows, py -x -m pip.

Une exception pour les extensions :

Si vous êtes sous Windows, installer en plus miniconda va vous simplifier énormément la vie pour installer les extensions compilées comme scipy.

Et si vous êtes sous Linux utilisez votre gestionnaire de paquet sans quoi vous allez devoir installer gcc et les headers de Python (package python-dev sous Ubuntu par exemple).

distutils, setuptools ou distribute ?

Setuptools. Le reste a été fusionné ou déprécié.

Python 32 bits ou python 64 bits ?

64 bits. Si vous avez un jour une erreur indébuggable sous windows, testez avec une version 32 bits au cas où. Mais 64 bits reste le choix par défaut.

Quel IDE ?

Aucun IDE n’est nécessaire en Python. On peut coder avec un simple éditeur de texte et la console. Je fais toutes mes formations avec Notepad++ sous Windows, ou Gedit sous Ubuntu.

Vous pouvez donc juste utiliser ce que vous aimez le plus.

Pour UI, PyQt, PySide, wxPython, Kivy, PyGTK, Tkinter ?

Tkinter si c’est une UI simple (quelques fenêtres, quelques formulaires). WxPython si c’est un programme complexe en Python 2.7. C’est le meilleur équilibre poids/puissance. Kivy si ça doit tourner sur mobile.

PyQt/PySide sont les plus puissants, mais beaucoup plus dur à utiliser. Ca vaut rarement le coup, sauf que pour le moment, c’est la seule solution solide en Python 3.

Les outils qui changent la vie

On peut coder avec Python sans tout ça, mais la vie est plus belle avec.

Si vous êtes sous windows, souvenez-vous que Shift avant un clic droit ajoute des options supplémentaires au menu contextuel de votre explorateur de fichiers. Avec notamment “Ouvrir une invite de commande dans ce dossier”. Sous Mac il y a un réglage pour ça. Sous Ubuntu il y a un plugin.

Ah oui, et sous windows, utilisez une console décente.

Bonnes habitudes

Réglez votre éditeur de texte pour utiliser 4 espaces pour indenter. Si vous préférez les tabs, réglez aussi votre éditeur de texte pour utiliser 4 espaces pour indenter.

Tant qu’on y est, apprenez à gérer votre encoding. Particulièrement, assurez-vous de savoir où changer l’encoding des caractères de vos fichiers dans les options de votre éditeur de texte. Et mettez le par défaut sur UTF8. Utilisez toujours des chaînes de caractères unicode et le header # -*- coding: utf-8 -*-.

Utilisez print avec la syntaxe sous forme de fonction. Et faites des imports absolus, jamais relatifs.

En fait, si vous êtes en Python 2.7, activez le plus de comportement de Python 3 possible en faisant les imports de __future__.

Pour un débutant, voici donc un bon template de fichier Python 2.7 par défaut :

# -*- coding: utf-8 -*-
 
"""
    Documenter le module ici.
"""
 
from __future__ import (unicode_literals, absolute_import,
                        print_function, division)
 
 
def main():
    """ Run the whole program """
    # votre code ici
    print('Hello !')
 
if __name__ == '__main__':
    main()

Pour Python 3, c’est plus simple :

"""
    Documenter le module ici.
"""
 
 
def main():
    """ Run the whole program """
    print('Hello !')
 
if __name__ == '__main__':
    main()

Utilisez toujours des dates en UTC. Ne convertissez qu’à l’affichage. Donc ça veut dire utiliser datetime.utcnow() et non datetime.now()

Des libs qu’on les aime

Les modules disponibles avec Python sont ce qu’on appelle la bibliothèque standard, ou stdlib. Il y a beaucoup de modules très utiles.

Néanmoins certains doivent avoir la priorité dans votre apprentissage. Les plus importants sont :

Quelques modules sont vieux, et ça se sent dans leur facilité d’usage. Pour cette raison, si vous utilisez beaucoup certains d’entre eux, des alternatives installables avec pip peuvent vous simplifier énormément la vie :

Stdlib Lib tierce partie plus pratique>
datetime arrow
os, sys, shutil path.py
argparse docopt
unittest pytest. En fait ne faites jamais de tests unitaires sans pytest. La vie est trop courte.
urllib2 requests

Y a des priorités dans la vie

Les trucs importants à apprendre en Python (qui sont typiques de ce langage, j’entends) avant de se lancer dans la sophistication :

Avec ça vous pouvez aborder sereinement tout problème. Le reste, c’est du bonus.

Typiquement, on peut repousser à bien plus tard l’apprentissage de :

Error happened! 0 - count(): Argument #1 ($value) must be of type Countable|array, null given In: /var/www/ecirtam.net/autoblogs/autoblogs/autoblog.php:428 http://ecirtam.net/autoblogs/autoblogs/sametmaxcom_a844ada43a979e3b1395ab9acb6afafb84340999/?Message-de-service-aux-d%C3%A9butants-en-Python-Recently-updated #0 /var/www/ecirtam.net/autoblogs/autoblogs/autoblog.php(999): VroumVroum_Blog->update() #1 /var/www/ecirtam.net/autoblogs/autoblogs/sametmaxcom_a844ada43a979e3b1395ab9acb6afafb84340999/index.php(1): require_once('...') #2 {main}