IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Problème à l'execution d'une commande externe


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    infographiste3d
    Inscrit en
    Octobre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : infographiste3d
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2011
    Messages : 19
    Par défaut Problème à l'execution d'une commande externe
    Bonjour,
    je suis bloqué depuis un petit moment sur une commande que j'essais d'exécuter depuis un script python.
    la voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import subprocess
     
    commande = "CScript.exe C:\\WMSDK\\WMEncSDK9\\samples\\vb\\wmcmd\\wmcmd.vbs -input moviein.avi -output movieout.wmv "
     
    sortie = subprocess.Popen(commande,stdout=subprocess.PIPE)
    while True:
    	o = sortie.stdout.readline()
    	if o == '' and sortie.poll() != None: break
    	print o
    je veux utiliser ce scripte pour encoder une video en wmv
    Cette commande exécuter directement dans une invite de commande marche parfaitement.
    Quant elle est exécuter de python j'ai une erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    C:\Users\lvr>C:\Users\lvr\Desktop\testWmv.py
    Microsoft (R) Windows Script Host Version 5.8
     
    Copyright (C) Microsoft Corporation. All rights reserved.
     
     
     
    C:\WMSDK\WMEncSDK9\samples\vb\wmcmd\wmcmd.vbs(374, 1) WScript.CreateObject: Coul
    d not create object named "WMEncEng.WMEncoder".

    Je pensais qu'executer une commande de python et d'une shell étais la même chose....

    merci

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    et comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sortie = subprocess.Popen(commande.split(),stdout=subprocess.PIPE)

  3. #3
    Membre averti
    Homme Profil pro
    infographiste3d
    Inscrit en
    Octobre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : infographiste3d
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2011
    Messages : 19
    Par défaut
    merci josmiley.Je viens d'essayer malheureusement j'ai la même erreur....

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    et juste cette ligne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    subprocess.call(['CScript.exe', 'C:\\WMSDK\\WMEncSDK9\\samples\\vb\\wmcmd\\wmcmd.vbs\\WMVEncoder\\wmcmd.vbs', '-input', 'moviein.avi', '-output', 'movieout.wmv'])

  5. #5
    Membre averti
    Homme Profil pro
    infographiste3d
    Inscrit en
    Octobre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : infographiste3d
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2011
    Messages : 19
    Par défaut
    Désolé même résultat...

  6. #6
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    Et : sortie = subprocess.Popen(commande, stdout=subprocess.PIPE, shell=True) ?
    Dans tous les cas ce n'est pas une erreur Python mais dans le sous process WSH utilisé. Ce qui signifie que Python/Popen ne lui donne pas toutes les infos.
    Je ne connais pas le WMSDK mais l'erreur Could not create object named "WMEncEng.WMEncoder" ne veux pas automatiquement dire que l'objet ne peux pas être créer. Il est aussi possible que la source ne soit pas trouvée (comprendre que le chemin n'est pas le même pour le sous process et Python).

    @+

  7. #7
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Citation Envoyé par lucaskywalker Voir le message
    Cette commande exécuter directement dans une invite de commande marche parfaitement.
    Mince, j'avais louper ce passage
    Tu lance l'invite et directement la commande ?
    Rien avant ?

    @+

  8. #8
    Membre averti
    Homme Profil pro
    infographiste3d
    Inscrit en
    Octobre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : infographiste3d
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2011
    Messages : 19
    Par défaut
    non juste la commande et ça passe.
    Je suis tombé sur plusieurs messages à ce propos et personne n'a l'air d'avoir trouvé une solution...

    Je viens d'essayer en désactivant DEP dans windows sans succès

  9. #9
    Membre averti
    Homme Profil pro
    infographiste3d
    Inscrit en
    Octobre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : infographiste3d
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2011
    Messages : 19
    Par défaut
    Autre curiosité, j'ai fait un test sans trop y croire avec deadline.
    C'est un soft pour gérer une renderfarm. J'ai passer ma commande avec et ça marche.
    Je vais contourner mon problème de cette manière mais si quelqu'un a une autre solution je suis toujours preneur.
    merci pour votre aide

  10. #10
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Petite question : Quel os et version (32/64 bits) ?
    Je pose la question car je viens de lire la doc en ligne et je suis tombé sur cela:
    Q: Cscript.exe crashes when I try to use WMCmd.vbs on Windows Vista. What should
    I do?
    A: This is a known issue. Microsoft has released a hotfix that fixes the problem:
    http://support.microsoft.com/default.aspx/kb/929182
    Cela n'as pas l'air d’être le même souci mais comme cela mets à jour la dll c’est a tenter.
    Informations sur les fichiers
    La version anglaise de ce correctif logiciel possède les attributs de fichier indiqués dans le tableau suivant ou ceux d'une version ultérieure. Les date et heure de création de ces fichiers sont exprimées en temps universel coordonné (UTC). Lorsque vous affichez les informations des fichiers, les données sont converties à l'heure locale. Pour connaître le décalage entre l'heure UTC et l'heure locale, utilisez l'onglet Fuseau horaire de l'outil Date et heure du Panneau de configuration.
    Nom du fichier Version du fichier Taille du fichier Date Heure Plate-forme
    Wmenc.exe 9.0.0.3352 647,168 15-Nov-2006 18:57 x86
    Wmenceng.dll 9.0.0.3352 1,554,944 15/11/2006 19:12 x86
    Étonnant que la protection DEP bloque le script Python et pas la ligne de commande. Tu devrais la réactivée.
    Par contre une chose a tester: exécuter le script en administrateur pour voir.

    C'est sans doute une bêtise mais le vbs à l'air verbeux. Peut être tenter l'option -silent ou -log avec subprocess (shell=True n'est peut être pas suffisant)?
    [-log] <log file>
    Writes all text output to a log file. Always overwrites.
    [-silent]
    Prevents statistics from being displayed after encoding is finished.
    Essayer avec os.system ? Style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    commande = "C:\\WINDOWS\\system32\\cmd.exe /C CScript.exe C:\\WMSDK\\WMEncSDK9\\samples\\vb\\wmcmd\\wmcmd.vbs -input moviein.avi -output movieout.wmv"
    # commande = "CScript.exe C:\\WMSDK\\WMEncSDK9\\samples\\vb\\wmcmd\\wmcmd.vbs -input moviein.avi -output movieout.wmv" 
    os.system(commande)
    Voili. C'est sans doute des idées en vrac mais bon, dur sans windows sous la main

    Edit: Autre chose dans la doc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Q: Cscript.exe fails to initialize the WMEncoder object when I try to use WMCmd.vbs
       with 32-bit WME9 on XP/Vista x64. Is WMCmd.vbs encoding broken on Windows x64?
    A: Not at all. The default script interpreter on Windows x64 is 64-bit cscript.exe. 
       WME9 x86 installs 32-bit COM objects (used by WMCmd.vbs). In order to run WMCmd,
       you need to use the 32-bit cscript.exe located in \Windows\SysWOW64 or simply 
       run the 32-bit cmd.exe command-prompt which will ensure the 32-bit version of 
       cscript.exe gets invoked.
    @++

  11. #11
    Membre averti
    Homme Profil pro
    infographiste3d
    Inscrit en
    Octobre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : infographiste3d
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2011
    Messages : 19
    Par défaut
    merci beaucoup pour toutes ces pistes, je teste ça dans la journée.
    lucas

Discussions similaires

  1. [Système] executer une commande externe depuis php
    Par sebgaillard dans le forum Langage
    Réponses: 1
    Dernier message: 09/04/2008, 15h34
  2. execution d'une commande externe
    Par crazykangourou dans le forum Langage
    Réponses: 9
    Dernier message: 30/03/2007, 12h36
  3. [Système]Execution d'une commande shell
    Par n8ken dans le forum API standards et tierces
    Réponses: 24
    Dernier message: 29/03/2007, 04h36
  4. [Système] Pb exécution d'une commande externe
    Par licorne dans le forum Langage
    Réponses: 9
    Dernier message: 19/10/2005, 16h34
  5. [System][EXEC] Probleme d'execution avec une commande parametrée.
    Par chicorico dans le forum Général Java
    Réponses: 15
    Dernier message: 20/05/2005, 15h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo