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 :

erreur import subprocess


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 136
    Points : 36
    Points
    36
    Par défaut erreur import subprocess
    Bonjour,

    j'essaie d'utiliser le module subprocess pour lancer des commandes et récupérer les résultats,
    j'utilise le code suivant en python:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    # !/usr/bin/env python
    # coding: utf8
    from subprocess import Popen, PIPE
    ls = Popen(["ls"], stdout=PIPE)
    stdout, stderr = ls.communicate()
    # sortie: stdout et stderr
    le problème c'est qu'il m'affiche un message d'erreur:
    from subprocess import Popen, PIPE
    ImportError: cannot import name Popen

    comment je peux utiliser ce module sachant que ma version de python est 2.5.1

    Merci.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 139
    Points : 131
    Points
    131
    Par défaut
    Et bien je te donne une réponse trés simple:
    tu ne peux pas!
    Le module subprocess n'est utilisable qu'à partir de la version 2.6

    sinon tu peux utiliser les "vieille" méthode : os.popen
    http://docs.python.org/library/os.ht...s.open#os.open

    Mais je crois que c'est mieux de mettre a jour ton python...

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 136
    Points : 36
    Points
    36
    Par défaut
    Non mais j'ai ce module dans:
    /usr/lib/python2.5/subprocess.py

    et quand j'essaie de l'utiliser en mode console sous python il marche mais pas dans un code et il m'affiche le message d'erreur :
    ImportError: cannot import name Popen

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Points : 970
    Points
    970
    Par défaut
    bonjour,

    subprocess est disponible depuis python 2.4.

    si tu fais ça dans une session interactive, tu obtiens le même résultat ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    >>> import subprocess
    >>> subprocess.__dict__["Popen"]
    <class 'subprocess.Popen'>

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 139
    Points : 131
    Points
    131
    Par défaut
    Ah oui, désolé...certains fonction de popen(genre terminate) ne sont dispo qu'a partir de la 2.6, mais le reste semble fonctionner pour 2.5

    Désolé

  6. #6
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 136
    Points : 36
    Points
    36
    Par défaut
    Oui ça marche en mode console, mais quand j'écris ça dans un fichier py ça marche pas et dans ce cas il me dit:
    subprocess.__dict__["Popen"]
    KeyError: 'Popen'

  7. #7
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Points : 970
    Points
    970
    Par défaut
    ok,

    question bête peut être mais es tu sûr de lancer la même version de python avec la console et le script ?

    peux tu rajouter ces lignes dans ta console et dans ton script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import sys
    print sys.version

  8. #8
    Nouveau membre du Club
    Inscrit en
    Janvier 2008
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 136
    Points : 36
    Points
    36
    Par défaut
    maintenant ça marche c'était de ma faute j'ai nommé mon fichier sur lequel je travaille subprocess.py et le import va récupérer ce fichier.

    Merci beaucoup.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA]Erreurs import Excel-> Access
    Par AndréPe dans le forum VBA Access
    Réponses: 4
    Dernier message: 22/04/2007, 11h28
  2. erreur import does not exist
    Par Mimi55 dans le forum JBuilder
    Réponses: 1
    Dernier message: 09/01/2007, 11h16
  3. [vba] erreur importation
    Par celiaaa dans le forum Access
    Réponses: 3
    Dernier message: 27/12/2006, 15h56
  4. [wsad/erreur import war]Error importing module file
    Par valal dans le forum Websphere
    Réponses: 1
    Dernier message: 05/09/2006, 15h01
  5. erreur importation base
    Par biloute73 dans le forum Requêtes
    Réponses: 1
    Dernier message: 21/06/2006, 14h12

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