G r i b o u i l l e Posted April 25, 2007 Share Posted April 25, 2007 Salut, Voilà, je suis bloqué depuis deux jours dans un projet. Simplement : Créer un Package .app exécutant un script Python qui lui-même lance un thttpd compilé et contenu dans le package, plus diverses activités qui concernent pas mon problème. Mon problème est simple, mais impossible de trouver la moindre de piste pour le résoudre : Quand j'execute le code indiqué dans le Info.plist du package, le serveur se lance correctement et le script poursuit donc execution, Quand j'execute le package .app directement, le serveur refuse catégoriquement de se lancer, j'ai d'abord mis en cause le serveur puis blanchi après avoir essayé un shttpd. Au niveau du script Python, j'ai tanté de faire l'appel au serveur par : commands.getoutput os.system En threads distinct ou non. Et dans la syntax de l'appel thttpd, 'nohup' ainsi que rediriger les sorties vers dev/null des fois que ça bloquerait là... Dans tous les cas il refuse, alors qu'un appel direct du script principal fonctionne en ne retournant aucune erreur/warning. def LaunchServer(): os.system('../Resources/sbin/thttpd -p 9519 -d ../Resources/www -u nobody') Voici le code actuel qui appel le serveur, si j'execute ../Resources/sbin/thttpd -p 9519 -d ../Resources/www -u nobody ça fonctionne également. Mon idée est que l'utilisation d'un .app implique des restrictions, mais je ne vois exactement lesquels Merci pour votre aide ! EDIT: Extraits de code : Infos.plist <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleDevelopmentRegion</key> <string>English</string> <key>CFBundleDocumentTypes</key> <array> <dict> <key>CFBundleTypeOSTypes</key> <array> <string>****</string> <string>fold</string> <string>disk</string> </array> <key>CFBundleTypeRole</key> <string>Viewer</string> </dict> </array> <key>CFBundleExecutable</key> <string>Gribouille.py</string> <key>CFBundleIconFile</key> <string>mainlogo.icns</string> <key>CFBundleIdentifier</key> <string>Gribouille</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleName</key> <string>Gribouille</string> <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleSignature</key> <string>????</string> </dict> </plist> Code de Gribouille.py #!/usr/bin/env python # Closed source, written by Julien ARNAUD. # Importing class and files import commands import threading import sys import os # Defining function for launching vital processes def LaunchServer(): os.system('../Resources/sbin/thttpd -p 9519 -d ../Resources/www -u nobody') # Defining threads for functions server = threading.Thread(None, LaunchServer, None) # LaunchServer() # Launching threads server.start() # Print back returned code #print server_code # Exites the script # sys.exit(general_code) Link to comment Share on other sites More sharing options...
iScarabee Posted April 25, 2007 Share Posted April 25, 2007 Arf ! Suis pas développeur mais j'espère que tu trouveras réponse à ta question !! Link to comment Share on other sites More sharing options...
G r i b o u i l l e Posted April 26, 2007 Author Share Posted April 26, 2007 Merci, j'éspère aussi Pour le moment je n'ai toujours pas avancé... Toute aide est la bienvenue Link to comment Share on other sites More sharing options...
otto Posted April 26, 2007 Share Posted April 26, 2007 question stupide, ca fait quoi si tu lances un truc super simple en leiu et place de ton serveur? Même problème? Link to comment Share on other sites More sharing options...
G r i b o u i l l e Posted April 27, 2007 Author Share Posted April 27, 2007 Bonne question, un peu plus loins dans le script .py il y'a un "open /Applications/Safari http://..." Et lui fonctionne ! Par contre si je tante de lancer un shttpd, thttpd, ou httpd il refuse... À cause du package, mais pourquoi...? Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.