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èmes pour comprendre status de commands getstatusoutput


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problèmes pour comprendre status de commands getstatusoutput
    Bonjour,

    Je vais résumer mon problème j'espère que quelqu'un aura une solution, car ça fait plusieurs jours que je tourne en rond dessus....

    J'ai développé une programme en cpp que je dois soumettre à une ferme de calcul. Le programme compile et tourne correctement sur mon ordinateur et également en interactif sur la ferme de calcul.

    Le problème est que l'outil de soumission à la ferme utilise un environement python, dans lequel la commande utilisée pour l'execution du programme est de cette forme:

    status,out = commands.getstatusoutput("exec program")



    Le programme cpp a l'air de tourner correctement, mais lorsque j'affiche le status de la commande précédente dans python je récupère ce status: 32768.

    Et du coup python considère que la commande à échouer et me renvoie une erreur....

    Ma question est relativement simple, est ce que quelqu'un sait ce que signifie ce statuscode 32768?

    Pour information je travail sur fedora X86_64 sur mon ordinateur local et la ferme de calcul tourne sous un environnement scientific linux cern avec ce kernel (2.6.18-194.17.4), Python 2.6.5 et gcc 4.3.2

    Merci d'avance,

    Louis

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 328
    Points : 36 847
    Points
    36 847
    Par défaut
    Salut
    32768 = %x8000 -1 en short int
    mais c'est le retour, à priori, d'exec - pourquoi passer par exec?
    Est ce que la soumission du lancement en local via python fonctionne?
    - W

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonour,

    Merci pour ta réponse. J'ai finalement finis par trouver une réponse sur un autre site plus tôt dans la journée... Le code d'erreur retourné serait équivalent à 128 dans un shell bash. Si l'information peu resservir à quelqu'un j'ai trouver l'info la:

    http://www.velocityreviews.com/forum...xit-value.html

    On peut utiliser ce type de commande:
    os.WIFEXITED(status) and os.WEXITSTATUS(code)
    Pour interpreter le message d'erreur.

    Pour en revenir au problème l'outil de soumission à la ferme envoie une commande shell bash en passant par l'interpreteur python et j'avais mis en générique "exec command" pour la commande bash envoyée (la commande est un peu plus compliqué que ca).

    Bon enfin toujours est il que le programme que j'execute renvoie ce code d'erreur, quand je le lance dans l'interpreteur python, mais je n'ai aucun problème quand je le soumets directement dans mon shell bash. J

    'ai trouvé une solution contournant le problème mais je ne comprends pas trop pourquoi j'ai ce code d'erreur dans python...

    Enfin bon merci d'avoir jeté un oeil à mon message,

    Louis

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 328
    Points : 36 847
    Points
    36 847
    Par défaut
    Citation Envoyé par louishel Voir le message
    Pour en revenir au problème l'outil de soumission à la ferme envoie une commande shell bash en passant par l'interpreteur python et j'avais mis en générique "exec command" pour la commande bash envoyée (la commande est un peu plus compliqué que ca).
    Certes mais quel est l'intérêt de passer par un autre interpréteur pour lancer le programme plutôt que de le lancer directement (et récupérer le code de status directement plutôt qu'une chose interprétée par ce qui réalise "exec".
    - W

Discussions similaires

  1. [2008] problème pour comprendre des questions
    Par kiraprod dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/10/2013, 13h49
  2. Réponses: 1
    Dernier message: 22/03/2012, 14h11
  3. Problème pour comprendre Implements
    Par Hokutoki dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 19/11/2011, 22h41
  4. [XL-2010] Problème pour lancer une macro-commande à partir d'un bouton
    Par viper37 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/07/2011, 19h34
  5. Réponses: 7
    Dernier message: 24/08/2007, 09h38

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