Seite 1 von 1
					
				Problem mit spawnl unter Windows
				Verfasst: Donnerstag 2. Dezember 2004, 12:56
				von Tobias Schenk
				Hallo zusammen!
Würde mich  freuen, wenn mir da jmd. kurz helfen könnte, ich krieg's einfach nicht gebacken:
Code: Alles auswählen
os.spawnl(os.P_WAIT, r'c:\windows\notepad.exe',r'c:\windows\notepad.exe')
os.spawnl(os.P_WAIT,  'c:\\windows\\notepad.exe','c:\\windows\\notepad.exe')
Beides klappt nicht und bringt mir die Fehlermeldung "Errno 2: No such file or directory"!
Was mach ich da falsche??
Danke, Grüße,
Tobias
 
			
					
				
				Verfasst: Donnerstag 2. Dezember 2004, 13:02
				von jens
				Also bei klappt es!
Hier mal meine Variante:
Code: Alles auswählen
import os
SystemRoot = os.path.expandvars( "${SystemRoot}" )
Notepad = os.path.join(SystemRoot,"notepad.exe")
print "Pfad:",Notepad
os.spawnl(os.P_WAIT, Notepad, Notepad)
 
			
					
				
				Verfasst: Donnerstag 2. Dezember 2004, 13:06
				von Gast
				Supi, danke, hab n seeehr doofen Fehler bemerkt! Der Name des Windows-Verzeichnisses ist hier bei der Arbeit nicht Windows, sogar WINNT! LOL
...Dämlich!
			 
			
					
				doch noch ne Frage!
				Verfasst: Donnerstag 2. Dezember 2004, 13:14
				von Tobias Schenk
				Ich würde gerne (um etwas zu Testen) ein Python-Skript aus Python heraus ausführen.
Ich dachte, daß geht vielleicht irgendwie so:
Code: Alles auswählen
fABAIn1 = "..\Premorph\Premorph.py"
os.spawnv(os.P_WAIT, r'c:/python23/python.exe',[fABAIn1])
geht aber nicht, wie auch andere Methoden, die ich versucht habe. 
Warum muss man denn eigentlich immer unbedingt den gesamten Pfad angeben? Im Command unter Windows kann ich ja auch einfach "python.exe" aufrufen, da das Verzeichnis in der Variable "Path" definiert ist.
Danke, Gruß,
Tobias
 
			
					
				
				Verfasst: Donnerstag 2. Dezember 2004, 13:27
				von mawe
				Hi!
Es geht sicher auch einfacher, aber so könntest Du es machen:
Code: Alles auswählen
import sys
import os
path = os.path.abspath(os.path.dirname(sys.argv[0]))  # hier bist Du
otherpath = '..\was\auch\immer'
Gruß, mawe
 
			
					
				
				Verfasst: Donnerstag 2. Dezember 2004, 13:37
				von Tobias Schenk
				Hi, danke für Deine Hilfe!
Aber MUSS man jetzt immer den absoluten Pfad angeben, wenn man ein Programm aufrufen will?
Also, geht auch: "Notepad.exe" oder nur: "C:\Winnt\notepad.exe"?
Gruß, Tobias
			 
			
					
				
				Verfasst: Donnerstag 2. Dezember 2004, 13:41
				von jens
				Zumindest mit os.spawnl() kommt ein fehler, wenn nur "notepad.exe" gestartet wird:
OSError: [Errno 2] No such file or directory
Mit einem anderen Befehl sollte es aber gehen!
EDIT:
z.B.
Unschön ist nur, das ein DOS-Fenster aufbleibt... Kann man aber so ändern:
Dann flackert nur kurz ein DOS-Fenster auf, schließ sich aber direkt.
 
			
					
				
				Verfasst: Donnerstag 2. Dezember 2004, 13:41
				von mawe
				Hi!
Frag mich keine Windows-Sachen 

Wie rufst Du Notepad denn normalerweise auf (die Frage ist ernst gemeint, hab schon lang kein W. mehr benutzt.)? Ich würde sagen genau so musst Du es dann auch aus deinem Script heraus aufrufen.
Gruß, mawe
 
			
					
				
				Verfasst: Donnerstag 2. Dezember 2004, 13:54
				von Tobias Schenk
				Hi zusammen!
Danke für die Tips, hat mir gut geholfen! Das mit Notepad speziell war nur ein einfacher Test von mir, mehr nicht. SOO oft brauch ich Notepad dann doch nicht! 
 
Danke!!
Tobias
 
			
					
				
				Verfasst: Donnerstag 2. Dezember 2004, 14:02
				von jens
				Tobias Schenk hat geschrieben:Das mit Notepad speziell war nur ein einfacher Test von mir, mehr nicht.
Und haben wir bestanden???  

 
			
					
				
				Verfasst: Donnerstag 2. Dezember 2004, 14:05
				von Tobias Schenk
				Also es war ja mehr ein Test für mich, um das zu vereinfachen, aber ihr habt euch tapfer geschlagen!
GLÜCKWUNSCH! 

 
			
					
				Danke
				Verfasst: Montag 22. August 2005, 20:46
				von Hopser008
				Hallo,
Euer Artikel hat mir sehr geholfen, ich habe es geschafft, aus der WIN-Registry die komplette Kommandozeile zum Öffnen bzw. Drucken einer Datei auszulesen, aber dann wie weiter??
os. system("Start ...) half da wunderbar weiter,
Danke
Lutz