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 :

executer mon programme python sous lunix


Sujet :

Python

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Par défaut executer mon programme python sous lunix
    Bonjour ,
    j'ai mon code python que j'ai codé sous windows
    je voudrais le tester sous lunix
    j'aimerais connaitre la procedure à suivre
    merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Par défaut
    j'ai fais cette commande :
    /etc/python2.6$ python /home/MonProgramePython

    mais y a plein d'erreur sachant que mon programme fonctionne parfiatement sous windows
    savez-vous d'ou vient ce problème ?

  3. #3
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Ben faudait nous dire quelles erreurs précisément.

    Quelle distribution de Linux utilises-tu ?

  4. #4
    Membre éclairé
    Avatar de Captain'Flam
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 273
    Billets dans le blog
    1
    Par défaut
    D'une manière générale, en lisant la doc tu verras qu'il y a pas de lib qui ont un fonctionnement différent suivant l'OS.
    Tu peux utiliser sys.platform pour le connaître, et écrire du code spécifique.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Salut,

    Ben faudait nous dire quelles erreurs précisément.

    Quelle distribution de Linux utilises-tu ?
    voici les erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Traceback (most recent call last):
      File "/home/ProjetPython/Main.py", line 21, in <module>
        fonctionXml=MaFonctionXML()
      File "/home/ProjetPython/MaFonctionXML.py", line 13, in __init__
        self.parseFichier()
      File "/home/ProjetPython/MaFonctionXML.py", line 20, in parseFichier
        doc = minidom.parse("fichier.xml")
      File "/usr/lib/python2.6/xml/dom/minidom.py", line 1918, in parse
        return expatbuilder.parse(file)
      File "/usr/lib/python2.6/xml/dom/expatbuilder.py", line 922, in parse
        fp = open(file, 'rb')
    IOError: [Errno 2] No such file or directory: 'fichier.xml'
    comment je peux connaitre la distribution que j'utilise ? je sais seulement que je suis sous ubuntu

  6. #6
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Au lieu d'être dans le répertoire "/etc/python2.6", essaye de te placer dans le répertoire de ton "Main.py" (cd /home/ProjetPython).

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 18
    Par défaut
    Sous ubuntu, python est installé "d'office" donc il te suffit de te placer dans le répertoire où se trouve ton programme via la commande cd comme dit précédemment et d'executer simplement :
    dans le terminal et en remplaçant Programme par le nom réel de ton programme.

    Pour connaître la version de python dont tu disposes, il suffit de faire :
    Dans le terminal où tu te trouves.

  8. #8
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Bonjour.

    L'erreur me semble être un grand classique : penser à utiliser ce qui suit...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import os
     
    dossierCourant = os.path.dirname(__file__)

  9. #9
    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
    Citation Envoyé par rambc Voir le message
    Bonjour.

    L'erreur me semble être un grand classique : penser à utiliser ce qui suit...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import os
     
    dossierCourant = os.path.dirname(__file__)
    exactement ce n'est pas une erreur dû à l'os; le même message serait apparu si le programme n'était pas lancer sous idle ama.
    attention: __file__ va raise an error avec idle.

  10. #10
    Membre Expert Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Par défaut
    Citation Envoyé par rambc Voir le message
    Bonjour.

    L'erreur me semble être un grand classique : penser à utiliser ce qui suit...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import os
     
    dossierCourant = os.path.dirname(__file__)
    Erreur maintes fois vue
    .
    Le dossier courant s'obtient via os.getcwd().

    os.path.dirname(__file__) est le répertoire où se trouve le script en train d'être exécuté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    plx@sony:/$ pwd
    /
    plx@sony:/$ more $HOME/file.py
    import os
     
    print "repertoire courant", os.getcwd()
     
    print "repertoire du script", os.path.dirname(__file__)
    plx@sony:/$ 
    plx@sony:/$ python $HOME/file.py 
    repertoire courant /
    repertoire du script /home/plx
    plx@sony:/$

  11. #11
    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
    Citation Envoyé par plxpy Voir le message
    Erreur maintes fois vue
    .
    Le dossier courant s'obtient via os.getcwd().

    os.path.dirname(__file__) est le répertoire où se trouve le script en train d'être exécuté
    ben justement, le fichier demandé semble se trouvé dans ce même répertoire ....

  12. #12
    Membre Expert Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Par défaut
    ben justement, le fichier demandé semble se trouvé dans ce même répertoire ....
    oui, peut-être, mais ça ne fait toujours pas de os.path.dirname(__file__) le moyen d'obtenir le répertoire courant !

    Je réagissais seulement au fait d'appeler le résultat de os.path.dirname(__file__) "dossier courant". Autant appeler les choses par leur nom, non ?

    Et donc, si "fichier.xml" est dans le répertoire du script, il faudra utiliser le chemin os.path.join(os.path.dirname(__file__),"fichier.xml"). Si on utilise seulement "fichier.xml", on tente d'ouvrir ce fichier dans le (seul et unique) répertoire courant, celui donné par os.getcwd()

  13. #13
    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
    Citation Envoyé par plxpy Voir le message
    Je réagissais seulement au fait d'appeler le résultat de os.path.dirname(__file__) "dossier courant". Autant appeler les choses par leur nom, non ?
    Absolument; autant pour moi

  14. #14
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Citation Envoyé par nancy maman Voir le message
    voici les erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Traceback (most recent call last):
      File "/home/ProjetPython/Main.py", line 21, in <module>
        fonctionXml=MaFonctionXML()
      File "/home/ProjetPython/MaFonctionXML.py", line 13, in __init__
        self.parseFichier()
      File "/home/ProjetPython/MaFonctionXML.py", line 20, in parseFichier
        doc = minidom.parse("fichier.xml")
      File "/usr/lib/python2.6/xml/dom/minidom.py", line 1918, in parse
        return expatbuilder.parse(file)
      File "/usr/lib/python2.6/xml/dom/expatbuilder.py", line 922, in parse
        fp = open(file, 'rb')
    IOError: [Errno 2] No such file or directory: 'fichier.xml'
    comment je peux connaitre la distribution que j'utilise ? je sais seulement que je suis sous ubuntu
    La distribution c'est Ubuntu.

    L'erreur te dit simplement que le fichier 'fichier.xml' n'est pas à l'endroit attendu.

    Vraisemblablement parce que tu as fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /etc/python2.6$ python /home/MonProgramePython
    Tout d'abord pourquoi '/etc/python2.6' ? il n'y a rien dans ce dossier. (juste un fichier inutile dans ton cas).

    Ensuite pourquoi "/home/ProjetPython/Main.py" ? Ce devrait être "/Home/user/ProjetPython/Main.py" où user est ton nom d'utilisateur.

    Soyons pratique, si ton programme python se trouve bien dans "/home/ProjetPython/Main.py" et que "fichier.xml" se trouve lui aussi dans "/home/ProjetPython/", tu dois juste faire ceci en console:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cd /home/ProjetPython/
    python Main.py


    Bonus: pour se faciliter la vie, il existe une collection de scripts pour Nautilus, le navigateur de fichiers, dont celui-ci:

    openTerminalHere
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    #!/bin/bash
     
    #Open a terminal with the currentdir of nautilus as workdir.
    #Don't need to select any file in the currentdir.
    ##########################################################################
    #                        Nautilus "Terminal Here" Script                 #
    ##########################################################################
    #                                                                        #
    # Created by Xinyu Du                                                    #
    # Emails: glacier_05@yahoo.com.cn                                        #
    ##########################################################################
    if [ "$1" = "" ];then
    	wdir=${NAUTILUS_SCRIPT_CURRENT_URI#file://}
    	wdir=${wdir//%20/ }
    else
    	filetype=$(file "$1")
    	filetype=${filetype##*: }
     
    	if [ "$filetype" = "directory" ];then
    		wdir=${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS%%$1*}
    		wdir=$wdir/$1
    	else
    		wdir=${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS%%$1*}
    	fi
    fi
    gnome-terminal --working-directory="$wdir"
    Copie ceci dans un fichier texte et tu l'enregistres là:
    "/home/user/.gnome2/nautilus-scripts/openTerminalHere"

    en remplaçant user par ce qui convient.

    Après cela il te suffira de faire un click droit dans un dossier et de choisir:
    "Scripts > openTerminalHere" pour avoir une console ouverte dans le bon dossier.

    Quelques autres ...
    http://doc.ubuntu-fr.org/nautilus_scripts

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 297
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Ce devrait être "/Home/user/ProjetPython/Main.py" où user est ton nom d'utilisateur.
    merci à vous tous
    en plus de ca j'avais mis dans mon code un chemin windows C:\ .... donc je l'ai enlevé et tout fonctionne bien


  16. #16
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Re,

    Je reviens sur cette histoire de "/home/ProjetPython/", ça me turlupinait.

    Il n'est pas possible sous Debian et dérivées de créer un fichier ou dossier dans "/home" autrement qu'avec les droits d'administrateur.

    vincent@tiemoko:/home$ echo "test" > test
    bash: test: Permission non accordée
    vincent@tiemoko:/home$ sudo echo "test" > test
    bash: test: Permission non accordée
    vincent@tiemoko:/home$ sudo su
    [sudo] password for vincent:
    root@tiemoko:/home# echo "test" > test
    root@tiemoko:/home# rm test
    root@tiemoko:/home# exit
    exit
    vincent@tiemoko:/home$
    Donc, de deux choses l'une, soit "ProjetPython" est ton nom d'user, pas impossible et tout va bien, soit c'est un dossier créé avec les droits d'admin et tu auras droit aux pires problèmes d'exécution de ton code. Par exemple si ton code modifie le fichier xml ou en crée un autre, tu ne pourras pas l'enregistrer dans ce dossier.

    À vérifier, ça.


    edit: On s'est croisés là, mais si c'est résolu, c'est bien.

  17. #17
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Citation Envoyé par plxpy Voir le message
    Je réagissais seulement au fait d'appeler le résultat de os.path.dirname(__file__) "dossier courant". Autant appeler les choses par leur nom, non ?
    Mea culpa pour le vocabulaire...

  18. #18
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Par défaut
    Python sous lunix ? Ca serait top...




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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/09/2009, 10h49
  2. Réponses: 12
    Dernier message: 03/04/2008, 13h19
  3. [debutant]Executer un programme compilee sous cygwin
    Par Battosaiii dans le forum Windows
    Réponses: 4
    Dernier message: 16/10/2005, 15h37
  4. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59

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