Question

Je viens de remarquer que mes anciens codes écrits en Python 2.5 ne fonctionne pas maintenant. Je suis en python 2.6 btw.

>>> os.spawnl(os.P_NOWAIT,"setup.exe")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "c:\python26\lib\os.py", line 612, in spawnl
    return spawnv(mode, file, args)
OSError: [Errno 22] Invalid argument
>>>

Un indice? ou avez-vous un échantillon de travail de os.spawn * avec option NOWAIT.

Mise à jour:

Même je mets le chemin complet dans os.spawnl (), Son erreur encore.

Était-ce utile?

La solution

Thrope a raison subprocess étant préféré. Mais le frai * des choses est toujours là dans 2.6 . En fait, vous pouvez voir que dans votre message d'erreur. Votre première arg semble être valide. Je vérifie la deuxième arg, qui est le chemin.

Autres conseils

Je l'ai travail en ajoutant le paramètre DUMMY enfin, un peu étrange si

Ce ne fonctionne pas

os.spawnl(os.P_NOWAIT,"Setup.exe")

Ceci est également ne fonctionne pas

os.spawnl(os.P_NOWAIT,"Setup.exe","")

Mais cela fonctionne

os.spawnl(os.P_NOWAIT,"Setup.exe","DUMMY")

Merci à tous de toute façon.

Je pense que recommandé d'utiliser le module ces jours-ci sous-processus plutôt que le os.spawn* les fonctions. (Je ne peux pas reproduire votre problème, mais je ne suis pas sur les fenêtres).

Une recherche Google évoque cette page sur le même problème se produit quand il y a un espace dans le chemin d'installation de python. Je ne pouvais pas le reproduire ici, mais peut-être que c'est le problème?

Dans tous les cas, selon la documentation MS cette valeur d'erreur (EINVAL) ne doit être renvoyée si l'argument de mode est invalide, ce qui est le cas ici.

os.spawnl() nécessite chemin complet exécutable, alors que os.spawnlp() utilise la variable d'environnement PATH pour le trouver.

Mise à jour : En outre, il est une erreur commune à la barre oblique inverse unescaped dans le chemin littéral (essayez d'imprimer pour voir si elle est interprétée à droite).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top