Python-subprocess mit import subprocess
Kann man das irgendwie überwinden? Kann ein Kind-Prozess erstellen, der ein Teilprozess?
Das problem ist, ich habe eine fertige Anwendung, die Bedürfnisse zu nennen, ein Python-Skript. Dieses Skript auf seinem eigenen perfekt funktioniert, aber es braucht, um vorhandene shell-Skripte.
Schematisch das problem ist in dem folgenden code:
parent.py
import subprocess
subprocess.call(['/usr/sfw/bin/python', '/usr/apps/openet/bmsystest/relAuto/variousSW/child.py','1', '2'])
child.py
import sys
import subprocess
print sys.argv[0]
print sys.argv[1]
subprocess.call(['ls -l'], shell=True)
exit
Laufen child.py
python child.py 1 2
all is ok
Laufen parent.py
python parent.py
Traceback (most recent call last):
File "/usr/apps/openet/bmsystest/relAuto/variousSW/child.py", line 2, in ?
import subprocess
ImportError: No module named subprocess
- Dies ist auf Solaris 2.6.2 - haben Sie versucht, diese Beispiele auf einer anderen Plattform?
- Sorry - Solaris 10, python 2.6.2 gebaut wurde aus der Quelle
- Es sollte funktionieren. Siehe meine Antwort. Ich habe eine Ahnung, dass Sie mit zwei verschiedenen python-executable.
- Kurz vor der
import subprocess
line-in child.py, drucken Siesys.path
. Ein Vergleich zwischen dem Fall, wo es funktioniert, und der Fall, wo es nicht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin in der Lage, um es auszuführen völlig in Ordnung. 🙂
Problem Debuggen:
Ich bin sicher, wenn Sie Folgendes gemacht, es wird für Sie arbeiten.
Alternativ Können Sie ändern Ihre
parent.py code
zuKönnen Sie versuchen, um Ihre python-Verzeichnis zu sys.Pfad in chield.py
Ja, es ist schlecht Weg, aber es kann dir helfen.
Mit
subprocess.call
ist nicht der richtige Weg, es zu tun. Meiner Ansichtsubprocess.Popen
wäre besser.parent.py:
child.py
Aus dem Programm: