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 ------------------------------------------