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
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
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 ?
Salut,
Ben faudait nous dire quelles erreurs précisément.
Quelle distribution de Linux utilises-tu ?
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.
voici les erreurs :comment je peux connaitre la distribution que j'utilise ? je sais seulement que je suis sous ubuntu
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'
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).
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part python Programme.py
Pour connaître la version de python dont tu disposes, il suffit de faire :
Dans le terminal où tu te trouves.
Code : Sélectionner tout - Visualiser dans une fenêtre à part python --version
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:/$
oui, peut-être, mais ça ne fait toujours pas de os.path.dirname(__file__) le moyen d'obtenir le répertoire courant !ben justement, le fichier demandé semble se trouvé dans ce même répertoire ....
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()
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:
Tout d'abord pourquoi '/etc/python2.6' ? il n'y a rien dans ce dossier. (juste un fichier inutile dans ton cas).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2/etc/python2.6$ python /home/MonProgramePython
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
Copie ceci dans un fichier texte et tu l'enregistres là:
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"
"/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
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.
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.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$
À vérifier, ça.
edit: On s'est croisés là, mais si c'est résolu, c'est bien.
Python sous lunix ? Ca serait top...
![]()
Partager