Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problem popen2 sous winXP ??

12 réponses
Avatar
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:\Python23\lib\popen2.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'
>>>

2 réponses

1 2
Avatar
Jerome
hg wrote:
Philippe Bouige wrote:

In article <qCpTh.9843$, hg wrote:


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





Avatar
pbouige
In article <BYpTh.100975$, hg wrote:

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>)



1 2