Debutant : Je voudrais lancer un logciel depuis mon progr Python

Fermé
evandib - 11 sept. 2016 à 11:34
 grabuge - 16 sept. 2016 à 11:00
Bonjour, je voudrais pouvoir faire un launcher de logiciel en Python 2.7
J'ai donc parcouru les forums etc, et apparrament il faut utiliser :
os.system ou subprocess ou Popen
j'ai essayé les 3 mais aucun de demarre de logiciel, et le python shell me renvoie une erreur a chaque fois, quelqu'un peu m'aider s'il vous plait ?
(PS : Je suis un EXTREME debutant, j'ai debuté la programmation hier, et en python)

2 réponses

Utilisateur anonyme
11 sept. 2016 à 13:49
et le python shell me renvoie une erreur a chaque fois,

Laquelle
0
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1540, in __call__
return self.func(*args)
File "/home/evan/Documents/lgcenteralpha0.0.0.6.1.py", line 52, in startsteam
import subprocess, subprocess.system
ImportError: No module named system
0
Voici le programme complet (pour resumer c'est un launcher de logiciel en rapport avec le gaming)

from Tkinter import *

prgprincipal = Tk() #version du programme : 0.0.0.6

prgprincipal.geometry ("700x500+450+500")
prgprincipal.title ("Linux Gaming Center alpha build 0.0.0.6")

def aboutwindow():
about = Tk()
about.geometry ("600x090+350+400")
about.title ("A propos de Linux Gaming Center alpha")


label = Label(about, text="Linux Gaming Center est un programme libre creer en Python 2.7 par **censurer sur CCM")
label.pack()


menubar = Menu(prgprincipal)

menu1 = Menu(menubar, tearoff=0)
menu1.add_command(label="Recherche de logiciel")
menu1.add_command(label="Proposer un tuto pour un logiciel")
menu1.add_separator()
menu1.add_command(label="Quitter", command=prgprincipal.quit)
menubar.add_cascade(label="Gaming Center", menu=menu1)

menu2 = Menu(menubar, tearoff=0)
menu2.add_command(label="Couper")
menu2.add_command(label="Copier")
menu2.add_command(label="Coller")
menubar.add_cascade(label="Options", menu=menu2)

menu3 = Menu(menubar, tearoff=0)
menu3.add_command(label="A propos", command=aboutwindow)
menubar.add_cascade(label="Aide", menu=menu3)

prgprincipal.config(menu=menubar)



label = Label(prgprincipal, text="Bienvenue sur LGaming Center !")
label.pack()

steam = PhotoImage(file="lgamingcenterlogo1.png")

canvas = Canvas(prgprincipal,width=48, height=48)
canvas.create_image(0, 0, anchor=NW, image=steam)
canvas.pack()

def startsteam():

import subprocess, subprocess.system
subprocess.system (gimp, shell=True)

demarrersteam=Button(prgprincipal, text="Demarrer Steam" , command=startsteam)
demarrersteam.pack(side=TOP, padx=100, pady=5)




prgprincipal.mainloop()
0
Quel intérêt de lancer gimp via une fenêtre tkinter ?

Et faudrait penser un peu à chercher, subprocess n'a pas de méthode/class ou module system.
Par contre y a call qui correspond à ton besoin.

Cherche sur internet avec les mots clefs : python execute external command, y a pléthore de résultats.

Autre chose, tu ne dois avoir qu'une seule et unique fenêtre root, si tu as besoin d'autres fenêtre sers-toi de Toplevel.
0
En tout cas merci pour vos réponses, lancer gimp est juste un test pour comprendre comment lancer un logiciel externe, bien sur ce ne sera pas gimp plus tard. Je vais voir pour call, je n'ai pas compris l'histoire de fenetre root et de toplevel désolé je suis très débutant (d'où le fait d'utiliser tkinter plutôt que Gtk)
0
grabuge > evandib
16 sept. 2016 à 11:00
Ah ok, c'est juste pour tester, alors tant qu'à faire autant lancer un programme léger, comme notepad par exemple, gimp c'est une grosse application loin d'être légère.

Lorsque je faisais allusion au toplevel, c'est que ton application doit avoir une fenêtre principale Tk() et ensuite toute autre fenêtre tierce de l'application doit être une toplevel ayant pour maître la fenêtre root.
0