Projet / SemaineTech / 2013 / Ateliers / DebianPythonVirtualenv / Archive

ARCHIVE ATELIER Redmine/Etherpad

   1 (12:00:06) davin.baragiotta: ----------------------------------------------- DEBUT Atelier Debian + Python + virtualenv -------------------------------------------------
   2 (12:00:38) davin.baragiotta: Bonjour à tous
   3 (12:00:59) davin.baragiotta: Cet atelier porte sur se monter un environnement de développement Python
   4 (12:01:18) davin.baragiotta: sur une distribution Linux
   5 (12:01:21) davin.baragiotta: basée sur Debian
   6 (12:01:45) davin.baragiotta: aussi, on s'initiera aux environnements virtuels Python
   7 (12:01:58) davin.baragiotta: le support de présentation est ici : http://bit.ly/14rg0Ll
   8 (12:02:26) davin.baragiotta: vous devriez avoir 3 fenêtres d'ouvertes :
   9 (12:02:40) davin.baragiotta: * celle-ci ;)
  10 (12:02:54) davin.baragiotta: * un navigateur avec le support de présentation
  11 (12:02:59) davin.baragiotta: * un terminal
  12 (12:03:17) davin.baragiotta: Attention : cet atelier est un peu expérimental pour moi
  13 (12:03:32) davin.baragiotta: * je ne suis pas un expert dans les sujets abordés
  14 (12:03:56) davin.baragiotta: * mais vous en saurez autant que moi après l'atelier sur ces sujets ;)
  15 (12:04:18) davin.baragiotta: un petit mot avant l'intro :
  16 (12:04:44) davin.baragiotta: la première partie de l'atelier a été créé pour le release party de Debian Wheezy à Montréal
  17 (12:04:48) davin.baragiotta: au printemps
  18 (12:05:17) davin.baragiotta: l'origine de l'initiative
  19 (12:05:43) davin.baragiotta: vient de moi, à travers Montréal-Python (groupe d'utilisateurs de Python à Montréal) pour régler le problème suivant :
  20 (12:06:02) davin.baragiotta: on a plein de participants à nos ateliers Python
  21 (12:06:12) davin.baragiotta: qui arrivent avec des Windows et des Macs...
  22 (12:06:19) davin.baragiotta: ce n'est pas mal en soi...
  23 (12:06:33) davin.baragiotta: .... mais c'est loin d'être top si tu veux faire du développement
  24 (12:07:06) davin.baragiotta: Python est un citoyen de première classe dans les distributions basées sur Debian
  25 (12:07:27) davin.baragiotta: et c'est simple se monter un environnement de développement
  26 (12:07:53) davin.baragiotta: donc voilà pour l'historique de cet atelier... on commence maintenant ;)
  27 (12:07:56) davin.baragiotta: INTRODUCTION
  28 (12:08:17) davin.baragiotta: bien sûr, je suppose que vous avez entre les mains une linux basée sur Debian
  29 (12:08:37) davin.baragiotta: poste client = Ubuntu 10.04 : ça devrait être parfait
  30 (12:09:13) davin.baragiotta: aussi, vous devez être administrateur du poste (sudoer)
  31 (12:09:27) davin.baragiotta: les objectifs, comme je l'ai déjà rappelé
  32 (12:09:50) davin.baragiotta: sont de 
  33 * monter un environnement de développement Python sur un distro basée sur Debian
  34 (12:10:04) davin.baragiotta: 
  35 * jouer avec les environnements virtuels Python
  36 (12:10:26) davin.baragiotta: l'intérêt étant d'être prêt à participer à des projets Python
  37 (12:10:51) davin.baragiotta: (ou de suivre des ateliers... disons... comme Django ;) )
  38 (12:11:13) davin.baragiotta: ENVIRONNEMENT DE DÉVELOPPEMENT PYTHON SUR DEBIAN
  39 (12:11:27) davin.baragiotta: ok, ouvrez un terminal si ce n'est déjà fait
  40 (12:12:06) davin.baragiotta: super
  41 (12:12:14) davin.baragiotta: tapez
  42 $ python
  43 (12:12:48) davin.baragiotta: oui, vous le savez déjà.... Python est installé par défaut sur une distribution Debian
  44 (12:13:18) davin.baragiotta: vous pouvez voir la version de votre Python en lançant l'interpréteur Python
  45 (12:13:53) davin.baragiotta: question : est-ce qu'on a tout ce qu'il nous faut pour développer en Python si on a l'interpréteur?
  46 (12:14:00) davin.baragiotta: réponse : presque... mais non
  47 (12:14:33) davin.baragiotta: quand on code en Python... ben... déjà... on code, donc il nous faut un éditeur texte
  48 (12:14:52) davin.baragiotta: mais rendu là, installation TOUT ce qu'il nous faut dès le départ
  49 (12:15:17) davin.baragiotta: pour ça, faut savoir installer des paquets Debian
  50 (12:15:42) davin.baragiotta: INSTALLER UN PAQUET DEBIAN
  51 (12:16:08) davin.baragiotta: faut d,abord savoir où trouver les paquets disponibles pour installation
  52 (12:16:43) davin.baragiotta: pour la dernière Debian stable... (Wheezy), vous aves les liens dans le doc de présentation
  53 (12:16:54) davin.baragiotta: y'a quand même beaucoup de chose!
  54 (12:17:00) davin.baragiotta: http://packages.debian.org/fr/stable/allpackages
  55 (12:17:11) davin.baragiotta: on risque de vouloir chercher par catégories
  56 (12:17:19) davin.baragiotta: http://packages.debian.org/fr/stable/
  57 (12:17:44) davin.baragiotta: et plus précisément, si vous voulez des outils Python... http://packages.debian.org/en/stable/python/
  58 (12:18:09) davin.baragiotta: je crois que tout le monde sait ici comment installer, mettre à jour ou supprimer un paquet Debian
  59 (12:18:47) davin.baragiotta: progfou a rappelé l'intérêt de la notion de paquet dans un autre atelier (qui vous montrait même comment faire des paquets)
  60 (12:19:12) davin.baragiotta: pour ceux plus débutants, les commandes de gestion des paquets sont dans le doc de présentation :
  61 (12:19:25) davin.baragiotta: 
  62 $ sudo apt-get install package-name
  63 $ sudo apt-get update package-name
  64 $ sudo apt-get remove package-name
  65 (12:19:41) davin.baragiotta: Alors, tout le reste de cette première partie de l'atelier
  66 (12:19:52) davin.baragiotta: consiste à trouver les paquets à installer
  67 (12:20:02) davin.baragiotta: pour se monter sa station de dév Python
  68 (12:20:04) davin.baragiotta: :)
  69 (12:20:27) davin.baragiotta: questions?
  70 (12:21:01) davin.baragiotta: on continue
  71 (12:21:07) davin.baragiotta: on l'a dit tout à l'heure il nous faut tout d'abord un éditeur texte
  72 (12:21:14) davin.baragiotta: ÉDITEUR TEXTE
  73 (12:21:39) davin.baragiotta: Je ne m'attarderai pas longtemps sur le sujet
  74 (12:21:50) davin.baragiotta: sinon pour dire que c'est une question de choix personnel
  75 (12:21:56) davin.baragiotta: regardez ce que Debian offre :
  76 (12:21:57) davin.baragiotta: http://packages.debian.org/stable/editors/
  77 (12:22:06) davin.baragiotta: parlez-en avec les gens....
  78 (12:22:17) davin.baragiotta: ... sans partir de flame war
  79 (12:22:18) davin.baragiotta: ;)
  80 (12:22:33) davin.baragiotta: et puis prenez ce que vous voulez
  81 (12:22:47) davin.baragiotta: emacs? vim (vi) ?
  82 (12:22:59) davin.baragiotta: moi je ne code pas tous les jours, mais pour ce que j'ai à faire
  83 (12:23:07) davin.baragiotta: j'utilise gedit
  84 (12:23:14) davin.baragiotta: qui est installé par défaut
  85 (12:23:21) davin.baragiotta: car je travaille en mode graphique
  86 (12:23:25) davin.baragiotta: et je n'ai pas honte
  87 (12:23:47) davin.baragiotta: mais ce n'est pas très sérieux quand on parle avec un vrai dev ;)
  88 (12:23:50) davin.baragiotta: pourquoi?
  89 (12:23:59) davin.baragiotta: c'est qu'on ne fait pas juste taper du texte
  90 (12:24:24) davin.baragiotta: on veut la coloration syntaxique de notre code Python (gedit l'a)
  91 (12:24:52) davin.baragiotta: on veut pouvoir indenter en bloc (gedit l'a)
  92 (12:25:15) davin.baragiotta: on veut pouvoir *commenter* en bloc (faut plug in gedit)
  93 (12:25:38) davin.baragiotta: on veut pouvoir faire de l'auto-complétion (ah... gedit l'a pas)
  94 (12:26:07) davin.baragiotta: on pourrait vouloir masquer/afficher en bloc le code (collapse/uncollapse)
  95 (12:26:19) davin.baragiotta: ce sont quelques exemples
  96 (12:26:35) davin.baragiotta: voilà donc... choisissez et installez
  97 (12:26:44) davin.baragiotta: INTERPRÉTEUR PYTHON
  98 (12:27:00) davin.baragiotta: comme dit plus haut, on a déjà l'interpréteur par défaut
  99 (12:27:16) davin.baragiotta: mais ipython est tellement plus "goûtu" ;)
 100 (12:27:26) davin.baragiotta: installez ipython
 101 (12:27:35) davin.baragiotta: 
 102 sudo apt-get install ipython
 103 (12:27:56) davin.baragiotta: GESTION DES VERSIONS
 104 (12:28:05) davin.baragiotta: on a eu un atelier dédié sur Git
 105 (12:28:15) davin.baragiotta: vous devez connaître l'intérêt de Git maintenant
 106 (12:28:19) davin.baragiotta: mais pour rappel
 107 (12:28:27) davin.baragiotta: on gère ses versions pour
 108 (12:28:34) davin.baragiotta: suivre l'historique des modifications
 109 (12:28:57) davin.baragiotta: expérimenter de nouvelles avenues quand on code (via des branches de développement)
 110 (12:29:17) davin.baragiotta: évidemment, on veut aussi collaborer et partager/fusionner notre code
 111 (12:29:35) davin.baragiotta: donc il nous faut un gestionnaire de version des sources VCS
 112 (12:29:44) davin.baragiotta: ici, on utilise Git
 113 (12:30:14) davin.baragiotta: mais Mercurial est un compétiteur sérieux (même si il prend de la distance en popularité)
 114 (12:30:21) davin.baragiotta: Mercurial est codé en Python
 115 (12:30:33) davin.baragiotta: ce qui le rend sympathique dans la communauté Python
 116 (12:30:41) davin.baragiotta: mais installez git si ce n'est pas fait
 117 (12:30:56) davin.baragiotta: ainsi que gitk pour visualiser l'arbre des commits
 118 (12:31:19) davin.baragiotta: Jusqu'ici, on n'a rien installé de bien nouveau, vous me direz
 119 (12:31:23) davin.baragiotta: c,est vrai
 120 (12:31:30) davin.baragiotta: EXTENSIONS PYTHON
 121 (12:31:39) davin.baragiotta: ce que vous saviez peut-être moins
 122 (12:31:55) davin.baragiotta: c'est que sur un poste de développeur Python
 123 (12:32:18) davin.baragiotta: on risque d'utiliser des extensions Python écrites dans d'autres langages
 124 (12:32:23) davin.baragiotta: si elles sont nécessaires
 125 (12:32:42) davin.baragiotta: il faut des outils qui permettent de les compiler
 126 (12:33:13) davin.baragiotta: (et ce faisant, si j'ai bien compris... certains outils qu'on compile ont besoin d'accéder aux sources de Python)
 127 (12:33:21) davin.baragiotta: donc on installe
 128 (12:33:25) davin.baragiotta: build-essential
 129 (12:33:29) davin.baragiotta: et python-dev
 130 (12:33:42) davin.baragiotta: 
 131 $ sudo apt-get install build-essential
 132 $ sudo apt-get install python-dev
 133 (12:33:47) davin.baragiotta: des questions?
 134 (12:34:18) ongolaBoy: .
 135 (12:34:19) davin.baragiotta: ok on continue
 136 (12:34:39) davin.baragiotta: en toute honnêteté, cette partie (extensions python) je la tiens de dev
 137 (12:34:52) davin.baragiotta: c'est à dire que j'ai demandé aux dev ce qu'il faut installer ;)
 138 (12:35:10) davin.baragiotta: mais ça ne veut pas dire que je comprenne tout (malheureusement, pas encore)
 139 (12:35:22) davin.baragiotta: ENVIRONNEMENTS VIRTUELS
 140 (12:35:46) davin.baragiotta: en gros, on a déjà tout ce qui nous faut
 141 (12:35:55) davin.baragiotta: avec ce qui précède
 142 (12:36:09) davin.baragiotta: la nouveauté c'est vraiement build-essential et python-dev
 143 (12:36:12) davin.baragiotta: ceci dit...
 144 (12:36:28) davin.baragiotta: un autre outil est utilisé très fréquemment par développeurs
 145 (12:36:39) davin.baragiotta: ce sont les environnements virtuels Python
 146 (12:37:06) davin.baragiotta: on va donc installer virtualenv et on va y revenir dans quelques instants
 147 (12:37:17) davin.baragiotta: 
 148 sudo apt-get install python-virtualenv
 149 (12:37:36) davin.baragiotta: c'est important d'installer ce paquet pour la suite de l'atelier
 150 (12:38:16) davin.baragiotta: pendant que l'installation roule... parlons un peu de ce que Debian offre en Python
 151 (12:38:30) davin.baragiotta: PAQUETS DEBIAN POUR PYTHON
 152 (12:38:44) davin.baragiotta: http://packages.debian.org/en/stable/python/
 153 (12:38:59) davin.baragiotta: Dans les ateliers Python que j'anime
 154 (12:39:11) davin.baragiotta: je n'insiste pas assez sur ça :
 155 (12:39:21) davin.baragiotta: Python esst dans à peu près tous les domaines
 156 (12:39:43) davin.baragiotta: c'est un langage versatile que plusieurs communautés se sont approprié
 157 (12:39:55) davin.baragiotta: on peut faire de tout en Python, ou presque
 158 (12:40:24) davin.baragiotta: en regardant la liste des paquets debian pour python
 159 (12:40:28) davin.baragiotta: on le voit!
 160 (12:40:52) davin.baragiotta: c'est un de mes objectifs personnels que d'avoir une bonne idée de chacun de ces outils
 161 (12:41:03) davin.baragiotta: mais en attendant, je vais vous présenter quelques vedettes
 162 (12:41:25) davin.baragiotta: dans le monde scientifique... qui devrait tout particulièrement nous intéresser à L'AUF
 163 (12:41:46) davin.baragiotta: on a plusieurs outils pour monter une vrai suite scientifique
 164 (12:41:52) davin.baragiotta: d'ailleurs, pour ceux intéressés
 165 (12:42:02) davin.baragiotta: chercher SciPy sur les Internets ;)
 166 (12:42:29) davin.baragiotta: un des outils utilisés par les scientifiques est "Matlab" (propriétaire)
 167 (12:42:56) davin.baragiotta: semblerait-il qu'on puisse faire presque tout ce que Matlab fait avec des outils python :
 168 (12:43:14) davin.baragiotta: matplotlib : permet de tracer des graphes (plot, en anglais)
 169 (12:43:26) davin.baragiotta: numpy : permet de manipuler des matrices
 170 (12:43:43) davin.baragiotta: j'en passe, car je ne les connais pas tous
 171 (12:44:00) davin.baragiotta: (et je ne suis pas sûr si tout est empaqueté en paquet Debian)
 172 (12:44:11) davin.baragiotta: mais une belle façon de découvrir des outils Python pour un domaine
 173 (12:44:18) davin.baragiotta: (outre chercher sur le web, bien sûr)
 174 (12:44:33) davin.baragiotta: c'est de s'impliquer dans les communautés locales ou de suivre des conférences
 175 (12:44:40) davin.baragiotta: quoi? ça coûte cher?
 176 (12:44:53) davin.baragiotta: minute! la plupart ont leurs vidéos en ligne!
 177 (12:45:06) davin.baragiotta: aussi, dans les salons de discussion des communautés
 178 (12:45:24) davin.baragiotta: mais je m'égare (pas tant que ça, mais quand même un peu)
 179 (12:45:37) davin.baragiotta: outre la science... on utilise Python pour quoi?
 180 (12:45:44) davin.baragiotta: développement web!!!!
 181 (12:45:53) davin.baragiotta: oui, et à l'AUF, on le fait en Django
 182 (12:46:01) davin.baragiotta: parfait, il y a un paquet Debian pour ça!
 183 (12:46:09) davin.baragiotta: python-django
 184 (12:46:39) davin.baragiotta: mes amis de Montréal-Python (beaucoup sont développeurs web) diraient que si on est sérieux
 185 (12:46:46) davin.baragiotta: on utilise Pyramid
 186 (12:46:47) davin.baragiotta: ;)
 187 (12:46:51) davin.baragiotta: Debian l'a!
 188 (12:46:55) davin.baragiotta: python-pyramid
 189 (12:47:38) davin.baragiotta: globalement, les frameworks de développement web nécessite d'être "branchés" à une base de données
 190 (12:48:02) davin.baragiotta: vous aurez peut-être un DB en MySQL
 191 (12:48:14) davin.baragiotta: ou... PostgreSQL
 192 (12:48:29) davin.baragiotta: ou... MSSQL (oui, ça arrive)
 193 (12:48:59) davin.baragiotta: il faut donc des outils Python (pilotes de base de données) pour interfacer notre code Python aux SGBD
 194 (12:49:12) davin.baragiotta: MySQL ? installer python-mysqldb
 195 (12:49:32) davin.baragiotta: PostgreSQL? installer python-psycopg2
 196 (12:49:47) davin.baragiotta: aussi, si vous aimez jouer avec les bases de données... 
 197 (12:50:04) davin.baragiotta: l'ORM (object-relationnal mapping) vedette du monde Python
 198 (12:50:13) davin.baragiotta: c'est SQLAlchemy
 199 (12:50:52) davin.baragiotta: SQLAlchemy permet donc de créer des objets Python à partir de bases de données (c'est la définition d'un ORM)
 200 (12:51:45) davin.baragiotta: c'est donc une couche au-dessus des pilotes de base de données vus plus haut (mysqldb, psycopg2)
 201 (12:51:58) davin.baragiotta: voilà pour le tour d'horizon des paquets Debian pour Python
 202 (12:52:14) davin.baragiotta: mais faites le tour de ce qui est offert!
 203 (12:52:16) davin.baragiotta: questions?
 204 (12:52:18) ongolaBoy: kazuhiro.oguchi: question: Qu'est ce que vous pensez de pip le gestionnaire de package python ?
 205 (12:52:29) davin.baragiotta: on en parle dans quelques instants
 206 (12:52:38) davin.baragiotta: autre question?
 207 (12:53:41) ongolaBoy: sekou.diall: Peut on faire du MVC avec django ou d'autres frameworks Python ?
 208 (12:53:56) davin.baragiotta: Réponse : oui ;)
 209 (12:54:14) davin.baragiotta: Django, on le verra dans un autre atelier aujourd'hui
 210 (12:54:22) davin.baragiotta: repose sur le modèle MVC
 211 (12:54:29) davin.baragiotta: idem Pyramid
 212 (12:55:13) davin.baragiotta: en fait... sauf erreur de ma part... tous l'implémente... c'est un peu une conséquence d'autres principes de design (séparer les responsabilités)
 213 (12:55:46) davin.baragiotta: donc les templates doivent être gérés séparément, par exmeple... (partie V du MVC) ;)
 214 (12:55:51) davin.baragiotta: autre question?
 215 (12:56:21) davin.baragiotta: ok continue avec la seconde partie
 216 (12:56:29) davin.baragiotta: ENVIRONNEMENTS VIRTUELS PYTHON
 217 (12:56:54) davin.baragiotta: jusqu'à maintenant, beaucoup de blabla pour en fait n,avoir installé que 2-3 trucs
 218 (12:57:09) davin.baragiotta: et on les a installé côté système
 219 (12:57:19) davin.baragiotta: avec des paquets Debian
 220 (12:57:29) davin.baragiotta: maintenant, il arrive des cas
 221 (12:57:41) davin.baragiotta: où on veut expérimenter un outil
 222 (12:57:49) davin.baragiotta: sans vouloir l'installer sur le système
 223 (12:57:50) davin.baragiotta: ou
 224 (12:58:10) davin.baragiotta: même si on voulait l'installer sur le système, le paquet Debian n'offre pas la version qu'on veut
 225 (12:58:36) davin.baragiotta: la façon de faire, en Python, c'est de créer des environnements virtuels Python
 226 (12:58:55) davin.baragiotta: un environnement virtuel Python, c'est quoi en fait?
 227 (12:59:30) davin.baragiotta: * c'est un Python installé localement (à un endroit précis, pas côté système)
 228 (13:00:01) davin.baragiotta: * qu'on active pour y installer des modules locaux (pas accessible côté système)
 229 (13:00:11) davin.baragiotta: (modules python j'entends)
 230 (13:00:41) davin.baragiotta: l'environnement virtuel Python peut soit
 231 (13:00:48) davin.baragiotta: * être complètement isolé du système
 232 (13:01:14) davin.baragiotta: * soit pouvoir utiliser en plus ce que le système offre en terme de modules python
 233 (13:01:20) davin.baragiotta: ok, passons à la pratique
 234 (13:01:40) davin.baragiotta: depuis le temps, votre paquet debian python-virtualenv doit être installé
 235 (13:01:49) davin.baragiotta: dans votre home
 236 (13:02:10) davin.baragiotta: créez un environnement virtuel Python complètement cloisonné, isolé du système
 237 (13:02:22) davin.baragiotta: on va l'appeler "env" (mais ça pourrait être n'importe quoi)
 238 (13:02:39) davin.baragiotta: 
 239 $ virtualenv --no-site-packages env
 240 (13:03:30) davin.baragiotta: dépendamment de votre version de virtualenv installée via votre paquet debian
 241 (13:03:40) davin.baragiotta: virtualenv peut installer distribute
 242 (13:03:56) davin.baragiotta: supprimez le .tar.gz : on n'en a pas besoin
 243 (13:04:22) davin.baragiotta: maintenant, nous allons utiliser notre environnement virtuel
 244 (13:04:55) davin.baragiotta: pour installer des logiciels python qui ont une version plus récentes que ceux des paquets Debian
 245 (13:05:02) davin.baragiotta: par exemple, notre fameux ipython
 246 (13:05:14) davin.baragiotta: lancez ipython pour connaître sa version sur votre système
 247 (13:05:23) davin.baragiotta: (version venue avec le paquet DEBIAN)
 248 (13:05:42) davin.baragiotta: moi, j'ai ipython 0.10
 249 (13:05:51) davin.baragiotta: Ubuntu 10.04 aussi
 250 (13:06:04) davin.baragiotta: Wheezy... c'est ipython 0.13.1-2
 251 (13:06:30) davin.baragiotta: sachant que ipython existe en version 1.0
 252 (13:06:37) davin.baragiotta: essayons de l'installer
 253 (13:06:54) davin.baragiotta: installer... localement, via un paquet PYTHON
 254 (13:07:12) davin.baragiotta: lançons notre environnement virtuel dans lequel on veut l'installer
 255 (13:07:26) davin.baragiotta: 
 256 $ source env/bin/activate
 257 (13:07:50) davin.baragiotta: on voit un (env) avant notre prompt
 258 (13:08:08) davin.baragiotta: ça dit qu'on est dans le contexte de notre environnement activé (il s'appelle "env")
 259 (13:08:38) davin.baragiotta: pour installer un paquet Python, on utilise pip
 260 (13:08:55) davin.baragiotta: (qui a été installé côté système comme dépendance de virtualenv)
 261 (13:09:07) davin.baragiotta: installons ipython (version la plus récente)
 262 (13:09:19) davin.baragiotta: 
 263 (env)$ pip install ipython
 264 (13:09:42) davin.baragiotta: 9 Mb
 265 (13:10:46) davin.baragiotta: ok, terminé pour moi
 266 (13:11:01) davin.baragiotta: lançons ipython maintenant pour voir sa version
 267 (13:11:13) davin.baragiotta: *** dans le contexte de mon environnement activé toujours ***
 268 (13:11:22) davin.baragiotta: 
 269 (env)$ ipython
 270 (13:11:39) davin.baragiotta: j'ai ipython 1.0.0
 271 (13:11:42) davin.baragiotta: :)
 272 (13:11:45) davin.baragiotta: questions?
 273 (13:12:29) ongolaBoy: q. « (env)$ pip install ipython » <---- par défaut, il t'installe quelle *version* ainsi ?
 274 (13:12:55) davin.baragiotta: voilà... je disais "la dernière version"... mais comment pip la connaît?
 275 (13:13:07) davin.baragiotta: pip installe des paquets python à partir de :
 276 (13:13:09) davin.baragiotta: pypi
 277 (13:13:16) davin.baragiotta: Python Packaging Index
 278 (13:13:25) davin.baragiotta: http://pypi.python.org
 279 (13:13:32) davin.baragiotta: si on suit ce lien
 280 (13:13:37) davin.baragiotta: et qu'on cherche ipython
 281 (13:13:46) davin.baragiotta: on voit "la dernière version"
 282 (13:14:06) davin.baragiotta: autre question?
 283 (13:14:12) davin.baragiotta: (on achève :-/ )
 284 (13:14:37) davin.baragiotta: ok on continue
 285 (13:15:25) davin.baragiotta: avec pip, on peut aussi interroger la liste de TOUS les modules Python actuellement accessible dans l'environnement... et voir leur version
 286 (13:15:35) davin.baragiotta: 
 287 (env)$ pip freeze
 288 (13:15:48) davin.baragiotta: (sortez de ipython avec exit() )
 289 (13:16:13) davin.baragiotta: 
 290 argparse==1.2.1
 291 distribute==0.6.24
 292 ipython==1.0.0
 293 wsgiref==0.1.2
 294 
 295 (13:16:22) davin.baragiotta: ça c'est mon freeze
 296 (13:16:37) davin.baragiotta: vous pouvez regardez dans le répertoire env/
 297 (13:16:43) davin.baragiotta: vous verrez ce qui est installé
 298 (13:17:05) davin.baragiotta: déjà, y'a un Python indépendant du Python système
 299 (13:17:33) davin.baragiotta: ok, pour sortir de l'environnement virtuel activé, voici la commande :
 300 (13:17:48) davin.baragiotta: 
 301 (env)$ deactivate
 302 (13:18:27) davin.baragiotta: on peut désinstaller des paquets avec pip
 303 (13:18:45) davin.baragiotta: avec 
 304 pip uninstall paquet
 305 (13:19:14) davin.baragiotta: ah, dernier point... je voulais vous montrer comment gérer la liste de dépendances de votre projet
 306 (13:19:35) davin.baragiotta: mettez les simplement dans un fichier requirements.txt (s'appelle comme ça par convention)
 307 (13:19:50) davin.baragiotta: et pour les installer avec pip :
 308 pip install -r requirements.txt
 309 (13:20:14) davin.baragiotta: -r = pour dire qu'on installe via un fichier de requirements (requis, en anglais)
 310 (13:20:30) davin.baragiotta: ok essayons ça et on termine là-dessus
 311 (13:20:37) davin.baragiotta: on relance environnement virtuel
 312 (13:20:44) davin.baragiotta: 
 313 source env/bin/activate
 314 (13:21:09) davin.baragiotta: on se créer un fichier requirements.txt là où on est
 315 (13:21:19) davin.baragiotta: 
 316 touch requirements.txt
 317 (13:21:37) davin.baragiotta: on l'édite avec notre éditeur (celui installé plus haut, bien sûr!)
 318 (13:21:50) davin.baragiotta: on ajoute la ligne suivante :
 319 ipython
 320 (13:22:05) davin.baragiotta: bon là, ça change rien... car on a déjà ipython d'installé
 321 (13:22:21) davin.baragiotta: mais, moi je sais qu'il existe un ipython notebook qui vient avec ipython 1.0.0
 322 (13:22:27) davin.baragiotta: essayons d'y accéder :
 323 (13:22:37) davin.baragiotta: 
 324 (env)$ ipython notebook
 325 (13:22:57) davin.baragiotta: bang!
 326 (13:22:59) davin.baragiotta: erreur!
 327 (13:23:18) davin.baragiotta: ipython notebook a besoin de pyzmq >= 2.1.11
 328 (13:23:22) davin.baragiotta: ach!
 329 (13:23:42) davin.baragiotta: en fait... toutes les dépendances de ipython notebook n'ont pas été installé avec ipython
 330 (13:24:05) davin.baragiotta: (c'est un choix fait par ceux qui ont fait le package de ipython... en se disant : si tu veux notebook en plus, installe le reste)
 331 (13:24:18) davin.baragiotta: donc on va ajouter la dépendance dans requirements.txt
 332 (13:24:26) davin.baragiotta: ajoutez cette ligne :
 333 pyzmq >= 2.1.11
 334 (13:25:07) davin.baragiotta: ensuite lancez l'installation de tous les paquet python de requirements.txt :
 335 (13:25:18) davin.baragiotta: 
 336 (env)$ pip install -r requirements.txt
 337 (13:25:28) davin.baragiotta: il installe pyzmq
 338 (13:25:38) davin.baragiotta: pour vérifier la version installée, pip freeze
 339 (13:25:48) davin.baragiotta: 
 340 (env)$ pip freeze
 341 (13:25:51) davin.baragiotta: voilà!
 342 (13:26:15) davin.baragiotta: maintenant, ipython notebook ne fonctionne pas plus, car il a encore d'autres dépendances...
 343 (13:26:33) davin.baragiotta: il faut donc lire la doc et installer les autres dépendances mentionnées dans la doc
 344 (13:26:48) davin.baragiotta: mais je voulais vous montrer ici l'install avec le fichier requirements.txt
 345 (13:26:53) davin.baragiotta: (pas ipython notebook ;) )
 346 (13:26:59) davin.baragiotta: voilà, terminé
 347 (13:27:04) davin.baragiotta: des questions avant ma conclusion?
 348 (13:27:32) ongolaBoy: progfou: Q: peut-on demander à pip d'installer tout ce qu'il faut pour que ipython notebook fonctionne ?
 349 (13:27:45) ongolaBoy: (dans le sens : y a-t-il une façon simple de résoudre ce problème avec pip ?)
 350 (13:28:11) davin.baragiotta: je ne sais pas... je suis newbie : http://www.pip-installer.org/
 351 (13:28:28) davin.baragiotta: mais ce serait étonnant dans la mesure où notebook est packagé avec ipython
 352 (13:28:42) davin.baragiotta: 
 353 (env)$ pip install ipython notebook
 354 (13:29:03) davin.baragiotta: ne devrait pas marcher (notebook vu comme un paquet distinct)
 355 (13:29:09) davin.baragiotta: autre question
 356 (13:29:16) davin.baragiotta: ?
 357 (13:29:32) davin.baragiotta: conclusion :
 358 (13:29:50) davin.baragiotta: se monter un poste de dev Python, c'est simple sur Debian!
 359 (13:30:02) davin.baragiotta: se monter des environnements virtuels Python : simple aussi!
 360 (13:30:19) davin.baragiotta: ah oui... pour supprimer le tout... simplement supprimer le répertoire env/ qu'on a créé ;)
 361 (13:30:38) davin.baragiotta: Pour aller plus loin, lire la doc de virtualenv et de pip
 362 (13:30:40) davin.baragiotta: ciao!
 363 (13:30:57) davin.baragiotta: ---------------------------------------- FIN Atelier Debian + Python + virtualenv ------------------------------------------

Projet/SemaineTech/2013/Ateliers/DebianPythonVirtualenv/Archive (dernière édition le 2013-09-05 11:46:40 par YemenSayour)