Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

[Python] Lancer une appli via python

oreilledelest, le vendredi 12 mai 2006 à 17:36:19
Bonjour
J'utlise la méthode Popen() pour lancer une application, mais je voudrais savoir si on pouvait lancer une application en y joignant un fichier.
Je m'explique :
C'est comme si avec la méthode Popen(), je voulais lancer un programme en python.
Si je met : Popen('python'), il me lance bien pyton dans mon terminal, mais il faut qu'ensuite j'ouvre un fichier .py pour utiliser python.
Je voudrais savoir si on peut directement faire :
Popen('python toto.py'), où un truc du style.
Merci
Répondre à oreilledelest  Signaler ce message aux modérateurs Aller au dernier message

1


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
kilian, le vendredi 12 mai 2006 à 17:45:24
Salut,

Je ne sais pas comment ça se passe avec popen pour les arguments de programmes.
Avec les fonctions exec par contre oui.

Avec la fonction os.execl, tu passes en premier le nom du programme puis les arguements au fur et à mesure exemple avec la commande:
cp machin truc

Ca donnera
os.execl('cp', 'machin', 'truc')

Et si tu ne connais pas à l'avance le nombre d'arguments, tu peux mettre tout ça dans un tableau et utiliser execv:
args=['machin','truc']
os.execv('cp',args)
Répondre à kilian

2


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
oreilledelest, le vendredi 12 mai 2006 à 17:52:02
Bon j'ai essayé ton code, mais il reconnaît la fonction exec comme un mot réservé (au même titre que if ou else).
Donc ça plante.
Y'a un module spécial à importer?
Répondre à oreilledelest

3


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
kilian, le vendredi 12 mai 2006 à 17:54:23
Oui exec est reservé, c'est pour exécuter un fichier python.
Tu es sûr que tu as lu tout mon message?

En fait je ne parle pas de la fonction globale exec mais plutôt des methodes
issues de la classe os qui commencent par exec (et y'en a plein: os.execv, os.execl etc...)
Répondre à kilian

4


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
oreilledelest, le vendredi 12 mai 2006 à 18:03:57
OK autant pour moi, j'avais pas vu le "l" de execl().

Si je fais :
os.execl('/opt/ActivePython-2.4/bin/python2.4', '/opt/ActivePython-2.4/bin/python_test.py')

Python se lance effectivement, mais le fichier passé en argument ne s'exécute pas.
Répondre à oreilledelest

15


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
 awalter1, le vendredi 8 septembre 2006 à 10:51:40
Bonjour,

Je suis dans le même cas que vous.
avez vous trouvé pourquoi le fichier .py passé en argument de execl ne s'exécutait pas ?

merci
Répondre à awalter1

5


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
kilian, le vendredi 12 mai 2006 à 18:12:41
OK autant pour moi, j'avais pas vu le "l" de execl().

Gredin ;-)

Du coup tu vois quoi? Un shell python?
Tu es sûr du chemin du fichier?

Je regarderai ça plus tard, j'ai pas trop le temps :-\
Répondre à kilian

6


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
oreilledelest, le lundi 15 mai 2006 à 09:32:06
Bonjour
J'ai une interface graphique avec un bouton et je voudrais associer à ce bouton l'exécution d'une application (python par exemple).
Quand j'écris ça :
os.execl('/usr/local/bin/python2.4', '/home/aurelien/devel/python/test/Main.py')
Mon interface graphique se ferme mais je vois bien que python s'est lancé dans mon terminal, mais sans ouvrir le fichier .py.
J'aimerais qu'il me lance mon appli et qu'il ouvre le fichier passé en argument et qu'il ne ferme pas mon interface graphique.
Merci
Répondre à oreilledelest

7


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
sebsauvage, le lundi 15 mai 2006 à 09:54:06
Petit conseil:

Utilisez le module subprocess.

C'est un module qui gère mieux le lancement de programmes extérieurs.

http://docs.python.org/lib/module-subprocess.html
Répondre à sebsauvage

11


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
kilian, le lundi 15 mai 2006 à 11:11:36
Merci pour l'info...
Répondre à kilian

8


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
oreilledelest, le lundi 15 mai 2006 à 10:17:21
Salut Seb
Bon j ai (ré)-utilisé Popen, mais je voudrais avor quelques précisions sur son fonctionnement.
En ce qui concerne les arguments, Popen() permet de lancer l application désirée.
Mais si je veux que l'application exécute un fichier , je dois lui mettre le chemin du fichier dans stdin, via la méthode .communicate(), c'est ça?
Répondre à oreilledelest

9


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
sebsauvage, le lundi 15 mai 2006 à 10:54:41
communicate n'est utile que s'il y a des allers-retours entre l'application lancée et ton programme (exemple: l'application lancée pose des questions et attend une réponse (habituellement tapée au clavier par l'utilisateur).

Si tu veux juste lancer le programme en lui donnant des paramètres et récupérer le contenu, communicate() n'est pas utile.


Pour passer des paramètre, il suffit de les donner sous forme de liste à popen.

Exemple: Je lance le programme compress et je lui passe 2 options:
-V et un nom de fichier:

p = subprocess.Popen(args=["compress","-V",nomdefichier], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
outputlines = p.stdout.readlines()
p.wait()
print outputlines



(Là en prime le récupère le texte qu'a affiché le programme dans outputlines)
Répondre à sebsauvage

10


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
oreilledelest, le lundi 15 mai 2006 à 11:07:56
Ok je te remercie.
Pour l'instant j ai encore quelques soucis mais je cherche....
Répondre à oreilledelest

12


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
oreilledelest, le lundi 15 mai 2006 à 12:10:40
Euh encore une petite question...
C'est possible de passer le fichier à exécuter avec stdin par un Pipe?
Répondre à oreilledelest

13


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
sebsauvage, le lundi 15 mai 2006 à 13:39:01
Euh encore une petite question...
C'est possible de passer le fichier à exécuter avec stdin par un Pipe?


Oui !

Là je pense que tu aura besoin de communicate().
Répondre à sebsauvage

14


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
oreilledelest, le lundi 15 mai 2006 à 14:10:23
Ah ben j'étais pas si loin que ça tout à l'heure....
Je vais voir ce que ça donne et comment ça marche.
Merci
Répondre à oreilledelest

Résultats pour [Python] Lancer une appli via python

Screen Impossible de rattacher (Résolu) Bonjour, J'ai lancé une application via un script shell dans /etc/init.d/hlds.sh comprenant la ligne : su hlds -c 'screen -dmS hlds ./hlds_run L'application se lance bien au lancement de la machine. Le problème est que je n'arrive... www.commentcamarche.net/forum/affich-3060393-screen-impossible-de-rattacher
Louer des logiciels Louer des logiciels pour l'entreprise La location de logiciels consiste pour l'entreprise à louer des applications via Internet sur une durée prédéfinie, au lieu de les acheter. Les structures de petite taille y trouvent un intérêt évident en... www.commentcamarche.net/faq/sujet-9193-louer-des-logiciels
Recuperer les favoris (Résolu) bonjour, j'ai télechargé mozilla firefox 1.5.0.11. auparavant je lancais internet via l'espace wanadoo. j'aimerais savoir comment faire pour transférer mes favoris de l'espace wanadoo vers mozilla. merci d'avance... www.commentcamarche.net/forum/affich-2851831-recuperer-les-favoris

Résultats pour [Python] Lancer une appli via python

Xubuntu: Modifier le menu "Applications"Modifier le menu application de Xubuntu Contrairement à Ubuntu, Xubuntu ne possède pas d'éditeur de menu. Le seul moyen d'éditer le menu est d'aller modifier des fichiers texte à la main. Pour cela, ouvrez un terminal (n'utilisez pas le... www.commentcamarche.net/faq/sujet-6477-xubuntu-modifier-le-menu-applications
[Shell] Transferer des fichiers via sshSSH - Secure SHell Utilisation Informations complémentaires LOGICIELS Sous Linux/Unix Sous Windows Avertissement Utilisation SSH permet d'utiliser des pipelines de commandes, et d'utiliser des tubes d'entrées/sorties comme toute autre... www.commentcamarche.net/faq/sujet-904-shell-transferer-des-fichiers-via-ssh
Votre première application graphique avec Python et GladeCe guide vous aidera à créer pas à pas votre première application graphique. Nous allons utiliser le langage de programme Python et l'API graphique GTK, en utilisant le logiciel Glade pour créer facilement les interfaces graphiques. C'est de la... www.commentcamarche.net/faq/sujet-8014-votre-premiere-application-graphique-avec-python-et-glade

Résultats pour [Python] Lancer une appli via python

Gmail Notifier (problème installation) (Résolu)Bonsoir à tous, Après avoir réinstallé mon PC ce WE (système exploitation WinXP), je n'arrive plus à installer Gmail Notifier. J'ai téléchargé l'application via le site Gmail. L'application se télécharge sans problème. Lors de son... www.commentcamarche.net/forum/affich-2164866-gmail-notifier-probleme-installation
Win32_bagle, peut pas installer window update (Résolu)Bonjour, j ai choper le virus win32 bagle, je peu pas avoir de scan live de karsersky et hijackthis je narrive pas a le lancer(application win32 illegale), et n arrive pas a installer bit defender (error writing to file... www.commentcamarche.net/forum/affich-7142058-win32-bagle-peut-pas-installer-window-update
[Connexion Internet] Problèmes (Résolu)Salut à tous ! Je suis connecté à Internet par un modem ComTrend Club-Internet (ADSL&Téléphonie), relié en Ethernet à ma carte réseau (IP dynamique). 1°) Je lance netcardconfig (via le menu K>Knoppix>Network Intenet>Network Card Configuration). 2°) Je... www.commentcamarche.net/forum/affich-1462746-connexion-internet-problemes

Résultats pour [Python] Lancer une appli via python

Toutes les applications pour l'iPhone regroupées sur l'App Store(Paris - Relax news) - Apple commercialise ce vendredi 11 juillet son iPhone 3G dans une vingtaine de pays dans le monde (le 17 juillet en France chez Orange). Pour accompagner la venue au monde de son nouveau smartphone à écran tactile, le fabricant... www.commentcamarche.net/actualites/toutes-les-applications-pour-l-iphone-regroupees-sur-l-app-store-5847036-actualite.php3
[Brève] Adobe lance ses applications sans connexion InternetAprès plusieurs années de développement, la société Adobe, éditrice entre autres des technologies PDF, Flash et de Photoshop, lance enfin la version finale de AIR (Adobe Integrated Runtime), un logiciel qui permet d'accéder à différentes applications... www.commentcamarche.net/actualites/breve-adobe-lance-ses-applications-sans-connexion-internet-5193236-actualite.php3
Pizza Hut lance un service de commande par Internet(Paris - Relax news) - Commander un repas Pizza Hut via le Net est désormais possible grâce au nouveau service lancé par la marque. Pour l'heure, huit sites en Ile-de-France et en Province proposent le service. D'ici la fin de l'année, tous les points... www.commentcamarche.net/actualites/pizza-hut-lance-un-service-de-commande-par-internet-5847344-actualite.php3