• # Tonton python

    Posté par (site web personnel) . En réponse au message python , fichier __init__py & virtualenv .. Évalué à 1.

    Fichier __init__:
    Ce fichier est présent dans tous les répertoires qui doivent être identifiés comme des modules python (je crois qu'on peut s'en passer dans les dernières versions de Python3).

    Imaginons tu aies un un module de dessin gfx.py ; avec le temps celui-ci grossit pas mal et tu veux le découper ; tu crées alors un répertoire gfx/ dans lequel tu mets un __init__.py, et les autres fonctionnalités découpées (circle.py, square.py ...). Le code présent dans __init__.py sera exécuté dès lors que tu vas faire un import gfx
    Si tu veux accéder au code de dessin tu pourras faire (entre autres):

    from gfx import foo # ca c'est pour le code dans gfx/__init__.py
    from gfx import square # ensuite tu pourra faire square.Square(...)
    from gfx.square import Square # ensuite tu pourra faire Square(...)

    L’intérêt de mettre un from square import Square dans gfx/__init__.py c'est de pouvoir écrire directement :

    from gfx import Square

    L'idée étant de remonter les symboles les plus utiles par exemples, mais ce n'est pas du tout obligatoire.

    chaque developpement python , faut il créer un environnement virtuel ou c'est crée directement par python ?

    Je ne suis pas sûr de comprendre la question. De base Python va utiliser l'environnement de ton shell, et va alors chercher les libs installées par ta distro (ou 'pip' lancé sans virtualenv). Le problème c'est quand les libs fournies par ta distro n'ont pas la version que tu souhaites ; ou pire que tu veux faire cohabiter des softs utilisant des versions différentes des mêmes libs. Du coup ça dépend que ce que tu veux !
    Si tu veux utiliser/suivre les versions des libs de ta distro (pour être inclus un jour dedans par exemple), ben tu ne vas pas utiliser de virtualenv pour ton soft. Si tu t'en tapes et que tu veux des versions plus récentes, alors oui un virtualenv sera sûrement indiqué (histoire de ne pas foutre la grouille dans ton système). Et si tu distribues ton soft, donne au moins le moyen d'installer les bonnes versions des libs (fichier requirements.txt que tu peux donner directement à manger à pip).

    y a t-il une difference entre windows et linux en dev

    Il me semble que faire des virtualenv sous windows est encore un peu compliqué, mais que ça évolue dans le bon sens. Et sous windows il faudra un peu de taff pour avoir un shell/terminal de qualité ; de plus, en pratique un certain nombre de packages Python ne sont pas testés sous windows, ou ne marche pas du tout avec (mais ce n'est pas une majorité hein).