Problem popen2 sous winXP ??

Le
pbouige
Bonjour,

J'ai plusieurs machines PC winxp, sur l'une impossible de
faire du popen alors que ça fonctionne sur les autres
testé sur python 2.3 et 2.4 :-(
Quelqu'un à une explication ?

Merci pour votre aide :-)

PS : j'ai ré-installé python mais j'ai toujours le même
problème :-((

Python 2.3.5 (#62, Feb 8 2005, 16:23:02) [MSC v.1200 32 bit
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more
information.
>>>
>>>
>>> import popen2
>>>
>>> popen2.popen2('dir')
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "C:Python23libpopen2.py", line 126, in popen2
w, r = os.popen2(cmd, mode, bufsize)
WindowsError: [Errno 123] Syntaxe du nom de fichier, de
rÚpertoire ou de volume
incorrecte: 'C:\WINDOWS\system32\cmd.exe;C:\Program
Files\PostgreSQL\8.1
bin /c dir'
>>>
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
hg
Le #602703
Philippe Bouige wrote:

Bonjour,

J'ai plusieurs machines PC winxp, sur l'une impossible de
faire du popen alors que ça fonctionne sur les autres...
testé sur python 2.3 et 2.4 :-(
Quelqu'un à une explication ?

Merci pour votre aide :-)

PS : j'ai ré-installé python mais j'ai toujours le même
problème :-((

Python 2.3.5 (#62, Feb 8 2005, 16:23:02) [MSC v.1200 32 bit
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more
information.


import popen2

popen2.popen2('dir')
Traceback (most recent call last):



File "<stdin>", line 1, in ?
File "C:Python23libpopen2.py", line 126, in popen2
w, r = os.popen2(cmd, mode, bufsize)
WindowsError: [Errno 123] Syntaxe du nom de fichier, de
rÚpertoire ou de volume
incorrecte: 'C:\WINDOWS\system32\cmd.exe;C:\Program
Files\PostgreSQL\8.1
bin /c dir'







Je comprends peut être mal, qu'y a t'il dans cmd ?

hg




hg
Le #602702
Philippe Bouige wrote:

In article


Je comprends peut être mal, qu'y a t'il dans cmd ?

Euh, c'est quoi la question ? cmd.exe est un executable win.



J'ai pas eu mon premier café désolé:

w, r = os.popen2(cmd, mode, bufsize)



cmd est bien une chaîne de charactère dans laquelle du charges le chemin du
programme que tu comptes lancer, non ?

hg


hg
Le #602701
Jerome wrote:

hg wrote:
Philippe Bouige wrote:

In article

Je comprends peut être mal, qu'y a t'il dans cmd ?

Euh, c'est quoi la question ? cmd.exe est un executable win.



J'ai pas eu mon premier café désolé:

w, r = os.popen2(cmd, mode, bufsize)



cmd est bien une chaîne de charactère dans laquelle du charges le chemin
du programme que tu comptes lancer, non ?


Tu devrais en reprendre un deuxième alors :)

la commande qu'il passe c'est 'dir'

la ligne w, r = os.popen2(cmd, mode, bufsize) est ce que renvoit le
traceback qui est un peu bizarre.

Est-ce que tu as l'erreur en lançant ton script ailleurs dans la
hierarchie du filesystem ?


hg




oops, désolé, j'ai effectivement mal lu la trace.

hg




hg
Le #602700
Philippe Bouige wrote:

In article
J'ai pas eu mon premier café désolé:

w, r = os.popen2(cmd, mode, bufsize)



cmd est bien une chaîne de charactère dans laquelle du charges
le chemin du programme que tu comptes lancer, non ?


Oui... ou plus exactement le programme DOS ici 'dir', lecture du
répertoire courant.

import popen2
popen2.popen2('dir')




Bon reprend un deuxième café ;-)

Voici la solution à mon problème, il y a tout simplement
une variable d'environnement système dans Windows qui se nomme
ComSpec. Cette dernière avait le chemin complet de cmd.exe +
celui de postgresql d'ou l'erreur 123 :-(((
J'ai donc ramené ComSpec à C:Windowssysteme32cmd.exe
et Oh miracle ;-)

import popen2
popen2.popen2('dir')
(<open file 'dir', mode 'r' at 0x009CCFA0>, <open file 'dir', mode 'w' at



0x009C C820>)



ça fais un quard d'heure que je tente de corrompre 'PATH' :-)

hg




Laurent Pointal
Le #601790
Bonjour,

J'ai plusieurs machines PC winxp, sur l'une impossible de
faire du popen alors que ça fonctionne sur les autres...
testé sur python 2.3 et 2.4 :-(
Quelqu'un à une explication ?

Merci pour votre aide :-)

PS : j'ai ré-installé python mais j'ai toujours le même
problème :-((

Python 2.3.5 (#62, Feb 8 2005, 16:23:02) [MSC v.1200 32 bit
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more
information.

import popen2

popen2.popen2('dir')
Traceback (most recent call last):



File "<stdin>", line 1, in ?
File "C:Python23libpopen2.py", line 126, in popen2
w, r = os.popen2(cmd, mode, bufsize)
WindowsError: [Errno 123] Syntaxe du nom de fichier, de
rÚpertoire ou de volume
incorrecte: 'C:\WINDOWS\system32\cmd.exe;C:\Program
Files\PostgreSQL\8.1
bin /c dir'


C'est en effet bizarre... 'C:\WINDOWS\system32\cmd.exe;C:\Program
Files\PostgreSQL\8.1' on peut comprendre qu'il ait du mal à faire le
dir.
Ca viens d'où le ';C:\Program Files\PostgreSQL\8.1' (ça ressemble à
un morceau de PATH).

As-tu essayé avec subprocess ?




JBB
Le #601789
Bonjour,

J'ai plusieurs machines PC winxp, sur l'une impossible de
faire du popen alors que ça fonctionne sur les autres...
testé sur python 2.3 et 2.4 :-(
Quelqu'un à une explication ?

Merci pour votre aide :-)

PS : j'ai ré-installé python mais j'ai toujours le même
problème :-((

Python 2.3.5 (#62, Feb 8 2005, 16:23:02) [MSC v.1200 32 bit
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more
information.

import popen2

popen2.popen2('dir')
Traceback (most recent call last):



File "<stdin>", line 1, in ?
File "C:Python23libpopen2.py", line 126, in popen2
w, r = os.popen2(cmd, mode, bufsize)
WindowsError: [Errno 123] Syntaxe du nom de fichier, de
rÚpertoire ou de volume
incorrecte: 'C:\WINDOWS\system32\cmd.exe;C:\Program
Files\PostgreSQL\8.1
bin /c dir'
Cette trace est très étrange.

Est tu sur de tes paramètres d'appels?




pbouige
Le #601787
In article
WindowsError: [Errno 123] Syntaxe du nom de fichier, de
rÚpertoire ou de volume
incorrecte: 'C:\WINDOWS\system32\cmd.exe;C:\Program
Files\PostgreSQL\8.1
bin /c dir'
Cette trace est très étrange.

Est tu sur de tes paramètres d'appels?

sys.path
['', 'C:\Tmp\TestClass\Variable', 'C:\WINDOWS\system32\python23.zip', 'C:



Python23', 'C:\Python23\DLLs', 'C:\Python23\lib', 'C:\Python23\lib\plat-
win', 'C:\Python23\lib\lib-tk', 'C:\Python23\lib\site-packages', 'C:\Pyth
on23\lib\site-packages\win32', 'C:\Python23\lib\site-packages\win32\lib'
, 'C:\Python23\lib\site-packages\Pythonwin']



pbouige
Le #601786
In article
Ca viens d'où le ';C:\Program Files\PostgreSQL\8.1' (ça ressemble à
un morceau de PATH).


Aucune idée voici mon path:

sys.path
['', 'C:\Tmp\TestClass\Variable', 'C:\WINDOWS\system32\python23.zip', 'C:



Python23', 'C:\Python23\DLLs', 'C:\Python23\lib', 'C:\Python23\lib\plat-
win', 'C:\Python23\lib\lib-tk', 'C:\Python23\lib\site-packages', 'C:\Pyth
on23\lib\site-packages\win32', 'C:\Python23\lib\site-packages\win32\lib'
, 'C:\Python23\lib\site-packages\Pythonwin']

la variable PATH d'environnement windows est :

%GTK_BASEPATH%bin;C:Program FilesPostgreSQL8.2bin;C:Wbin;
C:Python24Scripts;C:Program FilesCVSNT;C:Python23Scripts

et le PYTHONPATH est vide.

As-tu essayé avec subprocess ?


Malheureusement, ça donne le même problème :-(((



Laurent Pointal
Le #601785
In article
Ca viens d'où le ';C:\Program Files\PostgreSQL\8.1' (ça ressemble à
un morceau de PATH).


Aucune idée voici mon path:

sys.path
['', 'C:\Tmp\TestClass\Variable', 'C:\WINDOWS\system32\python23.zip', 'C:



Python23', 'C:\Python23\DLLs', 'C:\Python23\lib', 'C:\Python23\lib\plat-
win', 'C:\Python23\lib\lib-tk', 'C:\Python23\lib\site-packages', 'C:\Pyth
on23\lib\site-packages\win32', 'C:\Python23\lib\site-packages\win32\lib'
, 'C:\Python23\lib\site-packages\Pythonwin']

la variable PATH d'environnement windows est :

%GTK_BASEPATH%bin;C:Program FilesPostgreSQL8.2bin;C:Wbin;
C:Python24Scripts;C:Program FilesCVSNT;C:Python23Scripts

et le PYTHONPATH est vide.

As-tu essayé avec subprocess ?


Malheureusement, ça donne le même problème :-(((


Très très étonnant: la chaîne extra qui gène contient ";C:\Program
Files\PostgreSQL\8.1" et non pas 8.2...

T'aurais pas une vérole dans un fichier Windows qq part ?

Essaie peut-être de lancer ça avec le débogueur Python pdb, voir si tu
peux identifier d'où viens la chaîne de trop... si ça continue...
comp.lang.python...




pbouige
Le #601784
In article


Je comprends peut être mal, qu'y a t'il dans cmd ?

Euh, c'est quoi la question ? cmd.exe est un executable win.


Publicité
Poster une réponse
Anonyme