(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