|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : janvier 2009 Messages : 3 ![]() |
bonjour,j'ai installé le framework Karrigell, cité dans le tutorial Apprendre a programmer en Python,
mais les codes que je peux les executer en ligne de commande,m'affiche des erreurs voila ce code: Code :
Code :
|
||||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Fred Enseignant Inscription : juillet 2006 Messages : 1 303 ![]() |
Si on considère que tu as bien mapnik , je supposerais un probleme de path.
As-tu suivi l'installation de mapnik correctement? Des messages d'erreur sont expliqués, à voir. Si tu es sous windows va voir ici, il t'explique les messages d'erreur possibles dont la tienne. Bon courage!
__________________
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein) |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Pierre Quentel Inscription : novembre 2009 Messages : 10 ![]() |
Bonjour,
Les imports posent toujours des problèmes dans des environnements partagés comme les serveurs web, chaque utilisateur pouvant modifier sys.path Depuis la version 3.0, Karrigell résoud ce problème en distinguant deux cas : - les modules de la distribution standard, ou ceux qui sont dans le répertoire karrigell/package : on peut les importer par le classique "import foo" - les modules définis par l'utilisateur : il faut utiliser la fonction Import en passant en argument l'url du module : foo = Import('chemin/du/module/foo.py') C'est expliqué en détail dans la doc Pierre |
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Pierre Alaime Inscription : janvier 2011 Messages : 23 ![]() |
Bonjour,
Je n'ai pas de problème pour importer un module de la distribution standard ("random" s'importe par exemple très bien) sauf concernant Tkinter... Une partie du message d'erreur est la suivante: Quelqu'un aurait-il la solution? Merci d'avance. |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Pierre Quentel Inscription : novembre 2009 Messages : 10 ![]() |
Cf la discussion dans le forum Tkinter : le problème vient du fait que tu utilises l'application Karrigell.exe, créée avec py2exe. Dans cette application les scripts sont exécutés par un interpréteur qui n'intègre que les modules utilisés dans le package Karrigell, ce qui inclut random mais pas Tkinter
Pour pouvoir utiliser tous les modules de la distribution standard il faut installer Karrigell à partir de l'archive tar.gz - Pierre |
|
|
00
|
|
|
#6 | |
|
Expert Confirmé Sénior
![]() Inscription : juin 2008 Messages : 3 690 ![]() |
Citation:
- W
__________________
Architectures Post-Modernes |
|
|
|
00
|
|
|
#7 | ||
|
Candidat au titre de Membre du Club
![]() Pierre Quentel Inscription : novembre 2009 Messages : 10 ![]() |
Oui, ça marche : mettez ceci dans test_tk.py dans le répertoire www de Karrigell :
Code :
- Pierre |
||
|
|
00
|
|
|
#8 |
|
Expert Confirmé Sénior
![]() Inscription : juin 2008 Messages : 3 690 ![]() |
Dans le navigateur?
- W
__________________
Architectures Post-Modernes |
|
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Pierre Quentel Inscription : novembre 2009 Messages : 10 ![]() |
@wiztricks
Drôle de question ! Je détaille : - on est naturellement en local (navigateur et serveur sur la même machine) - Karrigell est lancé en ligne de commande : - quand le navigateur appelle la page http://localhost/test_tk.py cela déclenche l'exécution du script par l'interpréteur Python, qui ouvre une fenêtre Tkinter comme il le ferait en exécutant directement ce script par donc évidemment sans aucun lien avec le navigateur Sur le fond j'ai demandé à pieral85 pourquoi il avait besoin d'ouvrir un GUI depuis un script serveur - ça me semble bizarre comme cas d'usage. Si le serveur est distant cela n'aurait aucun intérêt puisque la fenêtre s'ouvrirait sur la machine distante ; il est d'ailleurs probable que les modules Tkinter sont enlevés des distributions Python sur serveur, ce qui déclencherait (heureusement pour le coup) un ImportError |
|
|
00
|
|
|
#10 |
|
Expert Confirmé Sénior
![]() Inscription : juin 2008 Messages : 3 690 ![]() |
Le CGI lancé via le HTTP get induit par http://localhost/test_tk.py s'attend à récupérer du HTML dans un délai raisonnable.
Je ne vois pas comment cela (délai raisonnable) est applicable au lancement d'une application Tk. Admettons qu'on ait besoin de passer par là pour générer une image "assez vite", pourquoi ne pas passer par un subprocess.call (qui récupère le Python installé côté systeme) plutôt que d'essayer de le faire dans le contexte de la requête HTTP? - W PS: en plus c'est un truc ou il va falloir que Tk travaille head less.
__________________
Architectures Post-Modernes |
|
|
00
|
|
|
#11 | ||
|
Candidat au titre de Membre du Club
![]() Pierre Quentel Inscription : novembre 2009 Messages : 10 ![]() |
Pendant que la boucle de Tkinter tourne le script Karrigell est suspendu, mais si on fait un "print" puis qu'on détruit la fenêtre, on sort de cette boucle et le résultat apparait bien dans le navigateur (ce qui fait que j'avais d'ailleurs tort de dire qu'il n'y avait aucun lien)
Code :
|
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com