17:30 <alain_afpy> Prochain afpyro dans 6 jours... http://afpyro.afpy.org/dates/2014/2014_04_12.html
20:35 <afpy_user|31367> salut
21:58 <ParaDoxe> Oui, j'ai vu les quantitée.
21:58 <matisla> bonjour
21:59 <ParaDoxe> Oups, mauvaise fenêtre. Désolé.
21:59 <matisla> peut on poser des questions pour un problèmes ici ?
22:02 <ParaDoxe> Rhaaaaaa
22:02 <ParaDoxe> Désolé, à nouveau.
22:09 <matisla> bonjours, ouù pourrais-je discuter avec qq'un qui s'y connais en python pour résoudre un problème ?
22:10 <ParaDoxe> Je ne suis pas là depuis assez longtemps pour savoir si tu peux poser ta question ici.
22:10 <matisla> ah
22:11 <ParaDoxe> Mais je dirais, essaye. Si c'est pas autorisé tu le sauras bien assez tôt. ^^
22:11 <matisla> ok merci
22:11 <matisla> alors voilà j'ai un projet à faire pour mes cours et j'ai du séparer mon code en package, module etc
22:12 <matisla> et en gros j'ai des problèmes pour importer un module
22:13 <matisla> dans depuis le même package
22:13 <matisla> du type ImportError
22:13 <matisla> si jamais je peut te donner le lien GIthub
22:14 <ParaDoxe> Volontier
22:15 <matisla> https://github.com/matisla/Hexapod_projet.git
22:16 <matisla> enfaite je lance dans mon projet le fichier GUI dans UserInterface et il plante au moment d'import le module Emission dans le package Client
22:16 <ParaDoxe> Ton problème est quand tu importe n'importe qul module depuis n'importe quel module de même package?
22:16 <matisla> enfaite bizarrement ça marche pour certain module et d'autre non
22:17 <matisla> pourtant je le fait exactement de la même manière
22:18 <matisla> il le fait aussi dans I2C avec I2CBoard
22:19 <matisla> lorsque que je lance le server avec le chemin d'importe suivant: server -> Communication -> I2C.cmdServos -> I2C.I2CBoard
22:19 <ParaDoxe> Je regarde le fichier UserInterface/GUI.py et je ne vois pas la ligne qui importe le module Emmission.
22:20 <matisla> GUI import Sender qui import Client.Client qui import Emission
22:21 <matisla> et avec le Traceback il arrive jusqu'a l'import Emission qui ne marche plus
22:21 <ParaDoxe> Mais le package Client est un niveau au dessus du module Sender.
22:22 <ParaDoxe> Comment sais-t-il où trouver le package Client?
22:22 <matisla> mais il arrive pourtant a le trouver
22:24 <ParaDoxe> Re.
22:24 <matisla> re
22:24 <matisla> justement du coup je sais pas trop comment faire dans ce cas pour qu'il y ai des liens entre les package
22:25 <matisla> mon problèmes est que je vois pas où est le problème
22:26 <ParaDoxe> Oui, alors concernant les modules et les packages, je n'ai pas assez joué avec pour trouver directement une solution à ton problème. Mais je vais me renseigner de suite car la solution m'intéresse.
22:26 <matisla> merci
22:26 <matisla> je suis particulièrement intéressé par ce problèmes car il est utile de savoir comment sa marche pour la suite si je veux faire du python
22:27 <matisla> j'ai trouvé ça
22:27 <matisla> http://sametmax.com/les-imports-en-python/
22:27 <matisla> mais j'ai pas trop bien compris quand il parle de path
22:28 <ParaDoxe> En cherchant des infos, je me suis dit "Tien, il à exactement le même problème lui" : http://fr.openclassrooms.com/forum/sujet/probleme-de-structure-d-un-projet-python?page=1#message-85601133
22:28 <ParaDoxe> Avant de me rendre compte de qui il s'agit. ^^
22:29 <matisla> :)
22:29 <matisla> j'ai essayé mais pas de réponse
22:29 <matisla> et là je peux expliquer directement à une personne qui peut me poser directement les question
22:29 <matisla> sur les zones d'ombres
22:30 <ParaDoxe> Alors, pour l'histoire du path dans ton lien
22:32 <ParaDoxe> Quand dans ton code Python tu fais "import quelquechose", Python va regarder si il trouve ce module dans le même dossier que le scripte qui contient cette ligne d'import ainsi que dans les dossiers listé dans le PYTHON PATH.
22:33 <matisla> et en gros ce Python Path c'est le chemin vers le script qui est exécuté ?
22:34 <ParaDoxe> Non, c'est une leste de dossiers qui dit à Python où, dans le système de fichier de l'OS, il va pouvoir trouver des modules.
22:34 <ParaDoxe> Une liste, pardon.
22:34 <matisla> ok
22:35 <matisla> donc il faudrait que je met dans dans ce path les différentes dossier que j'utilise lors du lancement du script ?
22:35 <alain_afpy> WARNING !!! YAKAFOKON DETECTED !!!!
22:35 <matisla> ?
22:36 <ParaDoxe> Le problème que tu as, c'est que tu cherche à importer le module d'un package qui se trouve plus haut dans arborescence du système de fichier que le scripte qui fait l'import.
22:37 <matisla> ok
22:37 <ParaDoxe> Et je crois pas que tu puisse faire un "from ../client import client"
22:37 <matisla> mais est ce que je peut mettre le dossier au dessus dans le path ?
22:37 <ParaDoxe> Oui
22:38 <matisla> ok je vais voir comment on utilise le path et merci encore beaucoup pour l'aide
22:38 <matisla> je risque de revenir si vraiment j'ai des problèmes dans les prochaines jours
22:38 <matisla> sinon j'utilise Eclipse et pydev
22:39 <matisla> pour programmer et il me met des erreurs du type
22:39 <matisla> unresolved Import: Emission par exemple, ça peut avoir un lien non ?
22:41 <matisla> si jamais sur le site que je t'ai montré on peut lire ceci
22:41 <matisla> La dernière possibilité, quand tout a échoué, c’est de rajouter à la main le dossier dans le PYTHON PATH. sys.path est une simple liste, on peut donc faire un append() dessus.
22:49 <ParaDoxe> Re
22:49 <ParaDoxe> J'ai raté quelque chose?
22:49 <matisla> re
22:49 <matisla> non
22:49 <matisla> sinon je voulais savoir tu t'y connais avec la bibliothèque smbus et I2C ?
22:49 <matisla> on sait jamais
22:50 <ParaDoxe> Nop
22:50 <ParaDoxe> La dernière fois que j'ai vu de l'I2C je réparé des télé à tube.
22:50 <matisla> ah ...
22:51 <matisla> moi c'est pour communiquer entre une raspberry pi et des Controller pour servomoteur
22:51 <matisla> pour mon projet d'hexapod et je dois dire que c'est la premier fois
22:51 <matisla> donc ça risque d'être chaud ...
22:52 <ParaDoxe> Mais concernant ton problème avec Python:
22:52 <ParaDoxe> Avant d'importer ton module client du package client, ajoute un:
22:52 <ParaDoxe> import sys
22:52 <ParaDoxe> sys.path.append('/chemin/vers/le/dossier/racine/du/projet/')
22:52 <ParaDoxe> Vu que c'est là que ce trouve tout tes modules.
22:52 <matisla> oui c'est ce que je pensais faire
22:53 <matisla> je séparer encore en deux dossier, d'un coté tout pour le client et de l'autre tout pour le server
22:53 <ParaDoxe> Enfin, si je me fi à ceci: http://sametmax.com/quelques-erreurs-tordues-et-leurs-solutions-en-python/
22:53 <matisla> et j'importe le bon dossier
22:53 <matisla> pour chaque partie
22:53 <matisla> cool merci
22:54 <ParaDoxe> Voilà
22:55 <matisla> merci beaucoup en tout cas
22:55 <ParaDoxe> Y a pas de souci.
22:55 <matisla> c'est sympa de discuter avec des gens qui prenne le temps
22:55 <ParaDoxe> Merci à toi d'avoir apporté une problématique intéressante.
22:55 <matisla> ce fut un plaisir ;)
22:56 <ParaDoxe> Je suis en train de mettre à jours mes connaissances en Python.
22:56 <ParaDoxe> Du coup j'en profite. ^^
22:56 <matisla> moi ça ne fait pas longtemps que je m'y suis mis et j'ai pas encore de bonne notion dans les autres languages non plus
22:58 <ParaDoxe> J'ai utilisé du Python pour la première fois durant mes études, il y à 5 ans (déjà). Mais à l'époque j'ai juste appris à faire en Python ce que je faisais dans d'autres langages.
22:59 <matisla> ok
23:00 <matisla> nous on a vu les bases en javas mais sans faire de projet et je me suis mis en autodidacte au python parce que ça me plait pas mal comme synthaxe
23:00 <ParaDoxe> Là je vais commencer mon nouveau Job en mai, j'ai donc besoin d'avoir une bonne connaissance de Python.
23:00 <matisla> ok
23:00 <matisla> et c'est quoi comme job ?
23:00 <ParaDoxe> Ah, vous c'est en Java. La chance.
23:00 <matisla> euh
23:00 <matisla> j'ai pas eu la chance de vraiment programmer des masses
23:01 <ParaDoxe> Le job, c'est Développeur OpenERP Junior.
23:01 <matisla> comme j'avais des notions je me suis ennuyé et je dois dire que j'aimerais pas a avoir a faire un programme en Java avec mes connaissances actuelles
23:01 <matisla> Ok interressant
23:02 <matisla> moi je suis dans une formation en Mécatronique ce qui fait que la programmation n'est qu'une toute petit partie du programme
23:02 <ParaDoxe> Je commence par 6 mois de formation avant de passer l’examen pour la certif de dév OpenERP.
23:02 <ParaDoxe> Ah effectivement.
23:02 <matisla> ok
23:03 <ParaDoxe> Mais il y a de pires choix que le Java comme langage pour apprendre la prog
23:03 <matisla> du coup faut replongé dans le language
23:04 <matisla> je pense que python serais un excellent choix pour apprendre au gens à programmer
23:04 <matisla> mais comme Java est un des languages les plus utilisé ...
23:04 <ParaDoxe> Durant mes études, le choix principale fut le C#
23:05 <ParaDoxe> Heureusement certains profs nous ont appris le C et le Pascal.
23:05 <ParaDoxe> Je crois que j'ai été le seul de la classe à apprécier le C
23:06 <matisla> nous on l'utlise pas mal pour programmer sur des arduino
23:07 <matisla> mais on utilise pas tout ce qui est gestion de la mémoire, pointeurs, etc.
23:07 <matisla> ce qui finalement fait la spécificité et la force du C
23:09 <ParaDoxe> Pourtant je ne voyais pas ce qu'il y a de conpliquer là-dedans.
23:09 <matisla> non, je vois pas non plus
23:09 <ParaDoxe> C'est peut-être par ce qu'avant j'ai fais des études d'électronicien.
23:10 <matisla> on a même vu l'assembleur mais nous avons pas eu la "CHANCE" de l'utiliser pour programmer des controlleurs
23:14 <matisla> ah peut etre
23:14 <matisla> bref je vais devoir y aller ce fût un plaisir de te rencontrer
23:14 <matisla> sur ce bonne soirée ou bonne nuit cela dépend
23:15 <ParaDoxe> Bonne soirée.
23:15 <matisla> ok
23:15 <matisla> :)
23:15 <matisla> moi ça va être bonne nuit
23:15 <matisla> demain lever 6h