=== ARCHIVE ATELIER Redmine/Etherpad === {{{#!highlight irc (12:00:06) davin.baragiotta: ----------------------------------------------- DEBUT Atelier Debian + Python + virtualenv ------------------------------------------------- (12:00:38) davin.baragiotta: Bonjour à tous (12:00:59) davin.baragiotta: Cet atelier porte sur se monter un environnement de développement Python (12:01:18) davin.baragiotta: sur une distribution Linux (12:01:21) davin.baragiotta: basée sur Debian (12:01:45) davin.baragiotta: aussi, on s'initiera aux environnements virtuels Python (12:01:58) davin.baragiotta: le support de présentation est ici : http://bit.ly/14rg0Ll (12:02:26) davin.baragiotta: vous devriez avoir 3 fenêtres d'ouvertes : (12:02:40) davin.baragiotta: * celle-ci ;) (12:02:54) davin.baragiotta: * un navigateur avec le support de présentation (12:02:59) davin.baragiotta: * un terminal (12:03:17) davin.baragiotta: Attention : cet atelier est un peu expérimental pour moi (12:03:32) davin.baragiotta: * je ne suis pas un expert dans les sujets abordés (12:03:56) davin.baragiotta: * mais vous en saurez autant que moi après l'atelier sur ces sujets ;) (12:04:18) davin.baragiotta: un petit mot avant l'intro : (12:04:44) davin.baragiotta: la première partie de l'atelier a été créé pour le release party de Debian Wheezy à Montréal (12:04:48) davin.baragiotta: au printemps (12:05:17) davin.baragiotta: l'origine de l'initiative (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 : (12:06:02) davin.baragiotta: on a plein de participants à nos ateliers Python (12:06:12) davin.baragiotta: qui arrivent avec des Windows et des Macs... (12:06:19) davin.baragiotta: ce n'est pas mal en soi... (12:06:33) davin.baragiotta: .... mais c'est loin d'être top si tu veux faire du développement (12:07:06) davin.baragiotta: Python est un citoyen de première classe dans les distributions basées sur Debian (12:07:27) davin.baragiotta: et c'est simple se monter un environnement de développement (12:07:53) davin.baragiotta: donc voilà pour l'historique de cet atelier... on commence maintenant ;) (12:07:56) davin.baragiotta: INTRODUCTION (12:08:17) davin.baragiotta: bien sûr, je suppose que vous avez entre les mains une linux basée sur Debian (12:08:37) davin.baragiotta: poste client = Ubuntu 10.04 : ça devrait être parfait (12:09:13) davin.baragiotta: aussi, vous devez être administrateur du poste (sudoer) (12:09:27) davin.baragiotta: les objectifs, comme je l'ai déjà rappelé (12:09:50) davin.baragiotta: sont de * monter un environnement de développement Python sur un distro basée sur Debian (12:10:04) davin.baragiotta: * jouer avec les environnements virtuels Python (12:10:26) davin.baragiotta: l'intérêt étant d'être prêt à participer à des projets Python (12:10:51) davin.baragiotta: (ou de suivre des ateliers... disons... comme Django ;) ) (12:11:13) davin.baragiotta: ENVIRONNEMENT DE DÉVELOPPEMENT PYTHON SUR DEBIAN (12:11:27) davin.baragiotta: ok, ouvrez un terminal si ce n'est déjà fait (12:12:06) davin.baragiotta: super (12:12:14) davin.baragiotta: tapez $ python (12:12:48) davin.baragiotta: oui, vous le savez déjà.... Python est installé par défaut sur une distribution Debian (12:13:18) davin.baragiotta: vous pouvez voir la version de votre Python en lançant l'interpréteur Python (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? (12:14:00) davin.baragiotta: réponse : presque... mais non (12:14:33) davin.baragiotta: quand on code en Python... ben... déjà... on code, donc il nous faut un éditeur texte (12:14:52) davin.baragiotta: mais rendu là, installation TOUT ce qu'il nous faut dès le départ (12:15:17) davin.baragiotta: pour ça, faut savoir installer des paquets Debian (12:15:42) davin.baragiotta: INSTALLER UN PAQUET DEBIAN (12:16:08) davin.baragiotta: faut d,abord savoir où trouver les paquets disponibles pour installation (12:16:43) davin.baragiotta: pour la dernière Debian stable... (Wheezy), vous aves les liens dans le doc de présentation (12:16:54) davin.baragiotta: y'a quand même beaucoup de chose! (12:17:00) davin.baragiotta: http://packages.debian.org/fr/stable/allpackages (12:17:11) davin.baragiotta: on risque de vouloir chercher par catégories (12:17:19) davin.baragiotta: http://packages.debian.org/fr/stable/ (12:17:44) davin.baragiotta: et plus précisément, si vous voulez des outils Python... http://packages.debian.org/en/stable/python/ (12:18:09) davin.baragiotta: je crois que tout le monde sait ici comment installer, mettre à jour ou supprimer un paquet Debian (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) (12:19:12) davin.baragiotta: pour ceux plus débutants, les commandes de gestion des paquets sont dans le doc de présentation : (12:19:25) davin.baragiotta: $ sudo apt-get install package-name $ sudo apt-get update package-name $ sudo apt-get remove package-name (12:19:41) davin.baragiotta: Alors, tout le reste de cette première partie de l'atelier (12:19:52) davin.baragiotta: consiste à trouver les paquets à installer (12:20:02) davin.baragiotta: pour se monter sa station de dév Python (12:20:04) davin.baragiotta: :) (12:20:27) davin.baragiotta: questions? (12:21:01) davin.baragiotta: on continue (12:21:07) davin.baragiotta: on l'a dit tout à l'heure il nous faut tout d'abord un éditeur texte (12:21:14) davin.baragiotta: ÉDITEUR TEXTE (12:21:39) davin.baragiotta: Je ne m'attarderai pas longtemps sur le sujet (12:21:50) davin.baragiotta: sinon pour dire que c'est une question de choix personnel (12:21:56) davin.baragiotta: regardez ce que Debian offre : (12:21:57) davin.baragiotta: http://packages.debian.org/stable/editors/ (12:22:06) davin.baragiotta: parlez-en avec les gens.... (12:22:17) davin.baragiotta: ... sans partir de flame war (12:22:18) davin.baragiotta: ;) (12:22:33) davin.baragiotta: et puis prenez ce que vous voulez (12:22:47) davin.baragiotta: emacs? vim (vi) ? (12:22:59) davin.baragiotta: moi je ne code pas tous les jours, mais pour ce que j'ai à faire (12:23:07) davin.baragiotta: j'utilise gedit (12:23:14) davin.baragiotta: qui est installé par défaut (12:23:21) davin.baragiotta: car je travaille en mode graphique (12:23:25) davin.baragiotta: et je n'ai pas honte (12:23:47) davin.baragiotta: mais ce n'est pas très sérieux quand on parle avec un vrai dev ;) (12:23:50) davin.baragiotta: pourquoi? (12:23:59) davin.baragiotta: c'est qu'on ne fait pas juste taper du texte (12:24:24) davin.baragiotta: on veut la coloration syntaxique de notre code Python (gedit l'a) (12:24:52) davin.baragiotta: on veut pouvoir indenter en bloc (gedit l'a) (12:25:15) davin.baragiotta: on veut pouvoir *commenter* en bloc (faut plug in gedit) (12:25:38) davin.baragiotta: on veut pouvoir faire de l'auto-complétion (ah... gedit l'a pas) (12:26:07) davin.baragiotta: on pourrait vouloir masquer/afficher en bloc le code (collapse/uncollapse) (12:26:19) davin.baragiotta: ce sont quelques exemples (12:26:35) davin.baragiotta: voilà donc... choisissez et installez (12:26:44) davin.baragiotta: INTERPRÉTEUR PYTHON (12:27:00) davin.baragiotta: comme dit plus haut, on a déjà l'interpréteur par défaut (12:27:16) davin.baragiotta: mais ipython est tellement plus "goûtu" ;) (12:27:26) davin.baragiotta: installez ipython (12:27:35) davin.baragiotta: sudo apt-get install ipython (12:27:56) davin.baragiotta: GESTION DES VERSIONS (12:28:05) davin.baragiotta: on a eu un atelier dédié sur Git (12:28:15) davin.baragiotta: vous devez connaître l'intérêt de Git maintenant (12:28:19) davin.baragiotta: mais pour rappel (12:28:27) davin.baragiotta: on gère ses versions pour (12:28:34) davin.baragiotta: suivre l'historique des modifications (12:28:57) davin.baragiotta: expérimenter de nouvelles avenues quand on code (via des branches de développement) (12:29:17) davin.baragiotta: évidemment, on veut aussi collaborer et partager/fusionner notre code (12:29:35) davin.baragiotta: donc il nous faut un gestionnaire de version des sources VCS (12:29:44) davin.baragiotta: ici, on utilise Git (12:30:14) davin.baragiotta: mais Mercurial est un compétiteur sérieux (même si il prend de la distance en popularité) (12:30:21) davin.baragiotta: Mercurial est codé en Python (12:30:33) davin.baragiotta: ce qui le rend sympathique dans la communauté Python (12:30:41) davin.baragiotta: mais installez git si ce n'est pas fait (12:30:56) davin.baragiotta: ainsi que gitk pour visualiser l'arbre des commits (12:31:19) davin.baragiotta: Jusqu'ici, on n'a rien installé de bien nouveau, vous me direz (12:31:23) davin.baragiotta: c,est vrai (12:31:30) davin.baragiotta: EXTENSIONS PYTHON (12:31:39) davin.baragiotta: ce que vous saviez peut-être moins (12:31:55) davin.baragiotta: c'est que sur un poste de développeur Python (12:32:18) davin.baragiotta: on risque d'utiliser des extensions Python écrites dans d'autres langages (12:32:23) davin.baragiotta: si elles sont nécessaires (12:32:42) davin.baragiotta: il faut des outils qui permettent de les compiler (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) (12:33:21) davin.baragiotta: donc on installe (12:33:25) davin.baragiotta: build-essential (12:33:29) davin.baragiotta: et python-dev (12:33:42) davin.baragiotta: $ sudo apt-get install build-essential $ sudo apt-get install python-dev (12:33:47) davin.baragiotta: des questions? (12:34:18) ongolaBoy: . (12:34:19) davin.baragiotta: ok on continue (12:34:39) davin.baragiotta: en toute honnêteté, cette partie (extensions python) je la tiens de dev (12:34:52) davin.baragiotta: c'est à dire que j'ai demandé aux dev ce qu'il faut installer ;) (12:35:10) davin.baragiotta: mais ça ne veut pas dire que je comprenne tout (malheureusement, pas encore) (12:35:22) davin.baragiotta: ENVIRONNEMENTS VIRTUELS (12:35:46) davin.baragiotta: en gros, on a déjà tout ce qui nous faut (12:35:55) davin.baragiotta: avec ce qui précède (12:36:09) davin.baragiotta: la nouveauté c'est vraiement build-essential et python-dev (12:36:12) davin.baragiotta: ceci dit... (12:36:28) davin.baragiotta: un autre outil est utilisé très fréquemment par développeurs (12:36:39) davin.baragiotta: ce sont les environnements virtuels Python (12:37:06) davin.baragiotta: on va donc installer virtualenv et on va y revenir dans quelques instants (12:37:17) davin.baragiotta: sudo apt-get install python-virtualenv (12:37:36) davin.baragiotta: c'est important d'installer ce paquet pour la suite de l'atelier (12:38:16) davin.baragiotta: pendant que l'installation roule... parlons un peu de ce que Debian offre en Python (12:38:30) davin.baragiotta: PAQUETS DEBIAN POUR PYTHON (12:38:44) davin.baragiotta: http://packages.debian.org/en/stable/python/ (12:38:59) davin.baragiotta: Dans les ateliers Python que j'anime (12:39:11) davin.baragiotta: je n'insiste pas assez sur ça : (12:39:21) davin.baragiotta: Python esst dans à peu près tous les domaines (12:39:43) davin.baragiotta: c'est un langage versatile que plusieurs communautés se sont approprié (12:39:55) davin.baragiotta: on peut faire de tout en Python, ou presque (12:40:24) davin.baragiotta: en regardant la liste des paquets debian pour python (12:40:28) davin.baragiotta: on le voit! (12:40:52) davin.baragiotta: c'est un de mes objectifs personnels que d'avoir une bonne idée de chacun de ces outils (12:41:03) davin.baragiotta: mais en attendant, je vais vous présenter quelques vedettes (12:41:25) davin.baragiotta: dans le monde scientifique... qui devrait tout particulièrement nous intéresser à L'AUF (12:41:46) davin.baragiotta: on a plusieurs outils pour monter une vrai suite scientifique (12:41:52) davin.baragiotta: d'ailleurs, pour ceux intéressés (12:42:02) davin.baragiotta: chercher SciPy sur les Internets ;) (12:42:29) davin.baragiotta: un des outils utilisés par les scientifiques est "Matlab" (propriétaire) (12:42:56) davin.baragiotta: semblerait-il qu'on puisse faire presque tout ce que Matlab fait avec des outils python : (12:43:14) davin.baragiotta: matplotlib : permet de tracer des graphes (plot, en anglais) (12:43:26) davin.baragiotta: numpy : permet de manipuler des matrices (12:43:43) davin.baragiotta: j'en passe, car je ne les connais pas tous (12:44:00) davin.baragiotta: (et je ne suis pas sûr si tout est empaqueté en paquet Debian) (12:44:11) davin.baragiotta: mais une belle façon de découvrir des outils Python pour un domaine (12:44:18) davin.baragiotta: (outre chercher sur le web, bien sûr) (12:44:33) davin.baragiotta: c'est de s'impliquer dans les communautés locales ou de suivre des conférences (12:44:40) davin.baragiotta: quoi? ça coûte cher? (12:44:53) davin.baragiotta: minute! la plupart ont leurs vidéos en ligne! (12:45:06) davin.baragiotta: aussi, dans les salons de discussion des communautés (12:45:24) davin.baragiotta: mais je m'égare (pas tant que ça, mais quand même un peu) (12:45:37) davin.baragiotta: outre la science... on utilise Python pour quoi? (12:45:44) davin.baragiotta: développement web!!!! (12:45:53) davin.baragiotta: oui, et à l'AUF, on le fait en Django (12:46:01) davin.baragiotta: parfait, il y a un paquet Debian pour ça! (12:46:09) davin.baragiotta: python-django (12:46:39) davin.baragiotta: mes amis de Montréal-Python (beaucoup sont développeurs web) diraient que si on est sérieux (12:46:46) davin.baragiotta: on utilise Pyramid (12:46:47) davin.baragiotta: ;) (12:46:51) davin.baragiotta: Debian l'a! (12:46:55) davin.baragiotta: python-pyramid (12:47:38) davin.baragiotta: globalement, les frameworks de développement web nécessite d'être "branchés" à une base de données (12:48:02) davin.baragiotta: vous aurez peut-être un DB en MySQL (12:48:14) davin.baragiotta: ou... PostgreSQL (12:48:29) davin.baragiotta: ou... MSSQL (oui, ça arrive) (12:48:59) davin.baragiotta: il faut donc des outils Python (pilotes de base de données) pour interfacer notre code Python aux SGBD (12:49:12) davin.baragiotta: MySQL ? installer python-mysqldb (12:49:32) davin.baragiotta: PostgreSQL? installer python-psycopg2 (12:49:47) davin.baragiotta: aussi, si vous aimez jouer avec les bases de données... (12:50:04) davin.baragiotta: l'ORM (object-relationnal mapping) vedette du monde Python (12:50:13) davin.baragiotta: c'est SQLAlchemy (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) (12:51:45) davin.baragiotta: c'est donc une couche au-dessus des pilotes de base de données vus plus haut (mysqldb, psycopg2) (12:51:58) davin.baragiotta: voilà pour le tour d'horizon des paquets Debian pour Python (12:52:14) davin.baragiotta: mais faites le tour de ce qui est offert! (12:52:16) davin.baragiotta: questions? (12:52:18) ongolaBoy: kazuhiro.oguchi: question: Qu'est ce que vous pensez de pip le gestionnaire de package python ? (12:52:29) davin.baragiotta: on en parle dans quelques instants (12:52:38) davin.baragiotta: autre question? (12:53:41) ongolaBoy: sekou.diall: Peut on faire du MVC avec django ou d'autres frameworks Python ? (12:53:56) davin.baragiotta: Réponse : oui ;) (12:54:14) davin.baragiotta: Django, on le verra dans un autre atelier aujourd'hui (12:54:22) davin.baragiotta: repose sur le modèle MVC (12:54:29) davin.baragiotta: idem Pyramid (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) (12:55:46) davin.baragiotta: donc les templates doivent être gérés séparément, par exmeple... (partie V du MVC) ;) (12:55:51) davin.baragiotta: autre question? (12:56:21) davin.baragiotta: ok continue avec la seconde partie (12:56:29) davin.baragiotta: ENVIRONNEMENTS VIRTUELS PYTHON (12:56:54) davin.baragiotta: jusqu'à maintenant, beaucoup de blabla pour en fait n,avoir installé que 2-3 trucs (12:57:09) davin.baragiotta: et on les a installé côté système (12:57:19) davin.baragiotta: avec des paquets Debian (12:57:29) davin.baragiotta: maintenant, il arrive des cas (12:57:41) davin.baragiotta: où on veut expérimenter un outil (12:57:49) davin.baragiotta: sans vouloir l'installer sur le système (12:57:50) davin.baragiotta: ou (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 (12:58:36) davin.baragiotta: la façon de faire, en Python, c'est de créer des environnements virtuels Python (12:58:55) davin.baragiotta: un environnement virtuel Python, c'est quoi en fait? (12:59:30) davin.baragiotta: * c'est un Python installé localement (à un endroit précis, pas côté système) (13:00:01) davin.baragiotta: * qu'on active pour y installer des modules locaux (pas accessible côté système) (13:00:11) davin.baragiotta: (modules python j'entends) (13:00:41) davin.baragiotta: l'environnement virtuel Python peut soit (13:00:48) davin.baragiotta: * être complètement isolé du système (13:01:14) davin.baragiotta: * soit pouvoir utiliser en plus ce que le système offre en terme de modules python (13:01:20) davin.baragiotta: ok, passons à la pratique (13:01:40) davin.baragiotta: depuis le temps, votre paquet debian python-virtualenv doit être installé (13:01:49) davin.baragiotta: dans votre home (13:02:10) davin.baragiotta: créez un environnement virtuel Python complètement cloisonné, isolé du système (13:02:22) davin.baragiotta: on va l'appeler "env" (mais ça pourrait être n'importe quoi) (13:02:39) davin.baragiotta: $ virtualenv --no-site-packages env (13:03:30) davin.baragiotta: dépendamment de votre version de virtualenv installée via votre paquet debian (13:03:40) davin.baragiotta: virtualenv peut installer distribute (13:03:56) davin.baragiotta: supprimez le .tar.gz : on n'en a pas besoin (13:04:22) davin.baragiotta: maintenant, nous allons utiliser notre environnement virtuel (13:04:55) davin.baragiotta: pour installer des logiciels python qui ont une version plus récentes que ceux des paquets Debian (13:05:02) davin.baragiotta: par exemple, notre fameux ipython (13:05:14) davin.baragiotta: lancez ipython pour connaître sa version sur votre système (13:05:23) davin.baragiotta: (version venue avec le paquet DEBIAN) (13:05:42) davin.baragiotta: moi, j'ai ipython 0.10 (13:05:51) davin.baragiotta: Ubuntu 10.04 aussi (13:06:04) davin.baragiotta: Wheezy... c'est ipython 0.13.1-2 (13:06:30) davin.baragiotta: sachant que ipython existe en version 1.0 (13:06:37) davin.baragiotta: essayons de l'installer (13:06:54) davin.baragiotta: installer... localement, via un paquet PYTHON (13:07:12) davin.baragiotta: lançons notre environnement virtuel dans lequel on veut l'installer (13:07:26) davin.baragiotta: $ source env/bin/activate (13:07:50) davin.baragiotta: on voit un (env) avant notre prompt (13:08:08) davin.baragiotta: ça dit qu'on est dans le contexte de notre environnement activé (il s'appelle "env") (13:08:38) davin.baragiotta: pour installer un paquet Python, on utilise pip (13:08:55) davin.baragiotta: (qui a été installé côté système comme dépendance de virtualenv) (13:09:07) davin.baragiotta: installons ipython (version la plus récente) (13:09:19) davin.baragiotta: (env)$ pip install ipython (13:09:42) davin.baragiotta: 9 Mb (13:10:46) davin.baragiotta: ok, terminé pour moi (13:11:01) davin.baragiotta: lançons ipython maintenant pour voir sa version (13:11:13) davin.baragiotta: *** dans le contexte de mon environnement activé toujours *** (13:11:22) davin.baragiotta: (env)$ ipython (13:11:39) davin.baragiotta: j'ai ipython 1.0.0 (13:11:42) davin.baragiotta: :) (13:11:45) davin.baragiotta: questions? (13:12:29) ongolaBoy: q. « (env)$ pip install ipython » <---- par défaut, il t'installe quelle *version* ainsi ? (13:12:55) davin.baragiotta: voilà... je disais "la dernière version"... mais comment pip la connaît? (13:13:07) davin.baragiotta: pip installe des paquets python à partir de : (13:13:09) davin.baragiotta: pypi (13:13:16) davin.baragiotta: Python Packaging Index (13:13:25) davin.baragiotta: http://pypi.python.org (13:13:32) davin.baragiotta: si on suit ce lien (13:13:37) davin.baragiotta: et qu'on cherche ipython (13:13:46) davin.baragiotta: on voit "la dernière version" (13:14:06) davin.baragiotta: autre question? (13:14:12) davin.baragiotta: (on achève :-/ ) (13:14:37) davin.baragiotta: ok on continue (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 (13:15:35) davin.baragiotta: (env)$ pip freeze (13:15:48) davin.baragiotta: (sortez de ipython avec exit() ) (13:16:13) davin.baragiotta: argparse==1.2.1 distribute==0.6.24 ipython==1.0.0 wsgiref==0.1.2 (13:16:22) davin.baragiotta: ça c'est mon freeze (13:16:37) davin.baragiotta: vous pouvez regardez dans le répertoire env/ (13:16:43) davin.baragiotta: vous verrez ce qui est installé (13:17:05) davin.baragiotta: déjà, y'a un Python indépendant du Python système (13:17:33) davin.baragiotta: ok, pour sortir de l'environnement virtuel activé, voici la commande : (13:17:48) davin.baragiotta: (env)$ deactivate (13:18:27) davin.baragiotta: on peut désinstaller des paquets avec pip (13:18:45) davin.baragiotta: avec pip uninstall paquet (13:19:14) davin.baragiotta: ah, dernier point... je voulais vous montrer comment gérer la liste de dépendances de votre projet (13:19:35) davin.baragiotta: mettez les simplement dans un fichier requirements.txt (s'appelle comme ça par convention) (13:19:50) davin.baragiotta: et pour les installer avec pip : pip install -r requirements.txt (13:20:14) davin.baragiotta: -r = pour dire qu'on installe via un fichier de requirements (requis, en anglais) (13:20:30) davin.baragiotta: ok essayons ça et on termine là-dessus (13:20:37) davin.baragiotta: on relance environnement virtuel (13:20:44) davin.baragiotta: source env/bin/activate (13:21:09) davin.baragiotta: on se créer un fichier requirements.txt là où on est (13:21:19) davin.baragiotta: touch requirements.txt (13:21:37) davin.baragiotta: on l'édite avec notre éditeur (celui installé plus haut, bien sûr!) (13:21:50) davin.baragiotta: on ajoute la ligne suivante : ipython (13:22:05) davin.baragiotta: bon là, ça change rien... car on a déjà ipython d'installé (13:22:21) davin.baragiotta: mais, moi je sais qu'il existe un ipython notebook qui vient avec ipython 1.0.0 (13:22:27) davin.baragiotta: essayons d'y accéder : (13:22:37) davin.baragiotta: (env)$ ipython notebook (13:22:57) davin.baragiotta: bang! (13:22:59) davin.baragiotta: erreur! (13:23:18) davin.baragiotta: ipython notebook a besoin de pyzmq >= 2.1.11 (13:23:22) davin.baragiotta: ach! (13:23:42) davin.baragiotta: en fait... toutes les dépendances de ipython notebook n'ont pas été installé avec ipython (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) (13:24:18) davin.baragiotta: donc on va ajouter la dépendance dans requirements.txt (13:24:26) davin.baragiotta: ajoutez cette ligne : pyzmq >= 2.1.11 (13:25:07) davin.baragiotta: ensuite lancez l'installation de tous les paquet python de requirements.txt : (13:25:18) davin.baragiotta: (env)$ pip install -r requirements.txt (13:25:28) davin.baragiotta: il installe pyzmq (13:25:38) davin.baragiotta: pour vérifier la version installée, pip freeze (13:25:48) davin.baragiotta: (env)$ pip freeze (13:25:51) davin.baragiotta: voilà! (13:26:15) davin.baragiotta: maintenant, ipython notebook ne fonctionne pas plus, car il a encore d'autres dépendances... (13:26:33) davin.baragiotta: il faut donc lire la doc et installer les autres dépendances mentionnées dans la doc (13:26:48) davin.baragiotta: mais je voulais vous montrer ici l'install avec le fichier requirements.txt (13:26:53) davin.baragiotta: (pas ipython notebook ;) ) (13:26:59) davin.baragiotta: voilà, terminé (13:27:04) davin.baragiotta: des questions avant ma conclusion? (13:27:32) ongolaBoy: progfou: Q: peut-on demander à pip d'installer tout ce qu'il faut pour que ipython notebook fonctionne ? (13:27:45) ongolaBoy: (dans le sens : y a-t-il une façon simple de résoudre ce problème avec pip ?) (13:28:11) davin.baragiotta: je ne sais pas... je suis newbie : http://www.pip-installer.org/ (13:28:28) davin.baragiotta: mais ce serait étonnant dans la mesure où notebook est packagé avec ipython (13:28:42) davin.baragiotta: (env)$ pip install ipython notebook (13:29:03) davin.baragiotta: ne devrait pas marcher (notebook vu comme un paquet distinct) (13:29:09) davin.baragiotta: autre question (13:29:16) davin.baragiotta: ? (13:29:32) davin.baragiotta: conclusion : (13:29:50) davin.baragiotta: se monter un poste de dev Python, c'est simple sur Debian! (13:30:02) davin.baragiotta: se monter des environnements virtuels Python : simple aussi! (13:30:19) davin.baragiotta: ah oui... pour supprimer le tout... simplement supprimer le répertoire env/ qu'on a créé ;) (13:30:38) davin.baragiotta: Pour aller plus loin, lire la doc de virtualenv et de pip (13:30:40) davin.baragiotta: ciao! (13:30:57) davin.baragiotta: ---------------------------------------- FIN Atelier Debian + Python + virtualenv ------------------------------------------ }}}