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 :

os.system / commande source


Sujet :

Python

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 60
    Points : 40
    Points
    40
    Par défaut os.system / commande source
    Bonjour,

    J'ai un script que je lance depuis un terminal avec la
    commande source: $ source script.
    Je tente de lancer cette commande depuis un script
    python mais je n'y parviens pas.
    J'ai bien essayé de faire: os.system("source script")
    mais la commande source n'est pas trouvée.

    Pourquoi ça ne fonctionne pas ?
    Comment faire alors ?

    Merci

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 159
    Points : 224
    Points
    224
    Par défaut
    Boujour,

    source n'est pas un exécutable, mais une commande bash.
    Commande qui n'existe pas en sh (interpréteur minimal utilisé entre autres par system().
    Donc tu peux :
    - utiliser la syntaxe '. ./script.sh' qui est comprise par sh
    - invoquer bash pour lui passer la commande source
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56) 
    [GCC 4.4.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import os
    >>> os.system('source ./script.sh')
    sh: source: not found
    32512
    >>> os.system('. ./script.sh')
    0
    >>> os.system('bash -c "source ./script.sh"')
    0
    >>>
    Par ailleurs, dans la doc de os.system on peut lire

    http://docs.python.org/library/os.html#os.system
    The subprocess module provides more powerful facilities for spawning new processes and retrieving their results; using that module is preferable to using this function. See the Replacing Older Functions with the subprocess Module section in the subprocess documentation for some helpful recipes.
    Ce qui nous amène ici :
    http://docs.python.org/library/subpr...cing-os-system

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 60
    Points : 40
    Points
    40
    Par défaut
    Je ne pouvais pas espérer une meilleure réponse.
    Merci beaucoup !!

  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
    salut,

    à noter que la modification de l'environnement qui est réalisé par ton script (par exemple nouvelle variable) ne "remontera" pas dans ton process Python. La modification de l'environnement est uniquement active dans le process qui a été lancé par os.system.

Discussions similaires

  1. probleme avec la commande source
    Par dihinass dans le forum Linux
    Réponses: 1
    Dernier message: 04/01/2012, 15h08
  2. question system commandes
    Par vitrix dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 17/12/2010, 20h20
  3. Commande source & Warnings
    Par faya972 dans le forum MySQL
    Réponses: 0
    Dernier message: 08/12/2009, 18h36
  4. explications commande source
    Par kamouminator dans le forum Linux
    Réponses: 2
    Dernier message: 05/06/2009, 18h55
  5. [Systeme] Commandes de l'os
    Par germanium dans le forum C++
    Réponses: 3
    Dernier message: 31/05/2007, 10h39

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