Vu le code que vous avez décrit, cette erreur peut venir pour trois raisons:
python
ISN 't sur votre PATH
, ou
secondary.py
ne se trouve pas dans votre répertoire de travail actuel.
Argument
ne figure pas dans votre répertoire de travail actuel.
De votre question éditée, il semble que c'est le dernier des trois, ce qui signifie que le problème a probablement rien à voir avec system
du tout ... mais nous allons voir comment résoudre tous les trois de toute façon. D'abord, vous voulez un chemin vers le même python
qui exécute primary.py
, ce qui est sys.executable
pour.
Ensuite, vous voulez un chemin vers secondary.py
. Malheureusement, pour celui-ci, il n'y a aucun moyen (en Python 2.3) qui est garanti pour fonctionner ... mais sur de nombreux systèmes POSIX, dans de nombreuses situations, sys.argv\[0\]
sera un chemin absolu primary.py
, de sorte que vous pouvez simplement utiliser dirname
et join
sur os.path
pour convertir cela en un chemin absolu à secondary.py
.
Et puis, en supposant Argument
est dans le répertoire de script, faire la même chose pour que:
my_dir = os.path.dirname(sys.argv[0])
os.system('%s %s %s' % (sys.executable,
os.path.join(my_dir, 'secondary.py'),
os.path.join(my_dir, 'Argument')))
Vous * peut * utiliser le [sous-processus backport] (https://code.google.com/p/python-subprocess32/). –
Vous mentionnez dans un commentaire ci-dessous que vous utilisez python 2.6. Le sous-processus est disponible pour cette version de python. – SethMMorton