(Courriels de diversion: <terrasserai@recensons-mammifere.com> <stigmatise@tisserent-pieter.com> <subreptice@conjecturait-attenuerez.com> <beneficiez@enerve-heriterions.com> <vanter@souillures-empresserai.com> <recueillirent@inspecterent-negocies.com> <lunaire@decuver-fastueux.com> <militaient@resisteras-faconnier.com> <exponentielles@antagoniste-implorerent.com> <consisteriez@admissibilites-commotionne.com> )
Jean-Michel a écrit : > Jean-Marc Mongrelet a écrit : > > >> Jean-Michel a écrit : >> >> >>> J'ai même fait la modification suivante dans Multimedia.py, et le >>> logiciel fonctionnait encore. >>> >>> >>> def set_Baffle(self,val) : >>> os.popen( '/usr/bin/amarok -a "%s" '%(val) ) >>> >>> def set_Casque(self,val) : >>> #os.popen('%s "%s" &'%(Commun.config_txt('xmms'),val) ) >>> os.popen('%s "%s" &'%(Commun.config_txt('xmms'),val) ) >>> >>> >>> Je n'ai donc pas réussi à reproduire l'anomalie décrite dans un >>> précédent message. >>> >>> >> Oui... >> >> Télécharge ce module: >> http://mjeanmarc.chez.com/pb_webcollection/PostRequette.py >> et remplace le. >> >> Dedans, j'ai désactivé le module multimédia, histoire de reproduire le bug. >> Les os.popen qui posent problèmes se trouvent dans la fonction inPlayerList. >> Cela n'est pas la mise en playlist dans amaroK qui pose problème, mais >> plutôt l'écoute (au casque) dans le player secondaire, en cliquant sur >> le champ "ss". >> Bien sur, le chois du player secondaire est configurable... >> Si tu exécute le script directement dans un terminal... comme ça: >> $ ./WebCollectionServer.py >> il te suffit de taper derrière "configure" pour configurer tout ça. >> Et si tu tape "quit", tu termine le programme. >> >> Remplace ce module et visualise le pb! >> >> @+ >> >> JM >> >> > > J'ai bien vu le problème. > > Toutefois, l'exécution du os.popen me semble immédiat, comme le close. > La page web n'est pas raffraichie, mais je ne sais pas pourquoi. Elle > est sans doute en attente de libération d'une ressource utilisée par > lepopen? > > > def inPlayerList(): > global PARAMETRE > if PARAMETRE.has_key('nf') : > #Multimedia.MULTIMEDIA.set_Baffle(PARAMETRE['nf']) > os.popen('amarok -a "%s"'%(PARAMETRE['nf']), 'w', 0) > if PARAMETRE.has_key('ss') : > #Multimedia.MULTIMEDIA.set_Casque(PARAMETRE['ss']) > print '%s "%s" > &'%(Commun.config_txt('xmms'),PARAMETRE['ss']) > x = os.popen('%s "%s" > &'%(Commun.config_txt('xmms'),PARAMETRE['ss'])) > print "exec ss done" > x.close() > print "close done" > PARAMETRE['cs'] = PARAMETRE['ss'] > > > > Pour moi, le problème se résout en utilisant subprocess: exemple: import subprocess > def inPlayerList(): > global PARAMETRE > if PARAMETRE.has_key('nf') : > #Multimedia.MULTIMEDIA.set_Baffle(PARAMETRE['nf']) > os.popen('amarok -a "%s"'%(PARAMETRE['nf']), 'w', 0) > if PARAMETRE.has_key('ss') : > #Multimedia.MULTIMEDIA.set_Casque(PARAMETRE['ss']) > print '%s "%s" &'%(Commun.config_txt('xmms'),PARAMETRE['ss']) > #x = os.popen('%s "%s" &'%(Commun.config_txt('xmms'),PARAMETRE['ss'])) > p = subprocess.Popen(args = '%s "%s" &'%(Commun.config_txt('xmms'),PARAMETRE['ss']), shell=True, close_fds=True) > p.poll() > print "exec ss done pid = " + str(p.pid) > #x.close() > print "close done" > PARAMETRE['cs'] = PARAMETRE['ss'] > > ----------------------------------------------------------------- Les listes de diffusion du CULTe - Pour une informatique libre http://www.CULTe.org/listes/ Pour se desabonner: mailto:linux-31-unsubscribe@CULTe.org?subject=Cliquez_sur_ENVOYER