Seite 1 von 1
Python 2.5.2 popen Problem
Verfasst: Mittwoch 10. September 2008, 15:13
von Ricky
Hallo zusammen,
seit einiger Zeit plagt mich ein Problem mit der aktuellen Python-Distribution (2.5.2).
Es scheint (zuminddest bei mir) ein Zugriffsproblem mit der Funktion "popen" aus dem os-Modul zu geben.
Befehle der Art
import os
p = os.popen(r'cmd /k')
oder
os.popen(r'dir')
resultieren stets in
WindowsError: [Error 5] Zugriff verweigert: 'C:\\Windows\\system32 /c dir'
Hat jemand evtl. einen Tip für mich, woran das liegen könnte ?
Besten Dank im Voraus,
Ralf.
Verfasst: Mittwoch 10. September 2008, 15:17
von Leonidas
``dir`` kann man ja auch nicht über ``popen`` einlesen, weil es ein in die Shell eingebauter Befehl ist.
Hint: ``os.listdir``.
Verfasst: Mittwoch 10. September 2008, 15:23
von Ricky
Okay, dies sollte eigentlich auch bloß ein Beispiel sein.
Jeglicher Aufruf von popen endet mit dem gleichen Zugriff-verweigert-Fehler.
Den Ursprung hat das ganze eigentlich in der Verwendung des gnuplot-Moduls. in dem läßt sich gnuplot über
import Gnuplot
p = Gnuplot.Gnuplot()
nicht starten, es ergibt sich der gleiche Fehler.
Und eben den hab' ich jetzt durch bugtracing bis zu popen zurückverfolgt, in dem Fall zu gp_win32.py.
Grüße,
Ralf.
Verfasst: Mittwoch 10. September 2008, 15:51
von Ricky
Hallo zusammen, kleines Update:
Nachdem ich jetzt hier im Forum ein klein wenig gesucht und gefunden hab', funktioniert schon mal folgende Geschichte:
import subprocess
subprocess.Popen('Explorer')
Jetzt wüßte ich bloß noch gern, wie ich dem Modul gp_win32.py eben beibringe, diese Funktion zu verwenden ...
Importieren von subprocess in gp_win32.py funktioniert schonmal nicht:
self.gnuplot = subprocess.Popen(GnuplotOpts.gnuplot_command, 'w')
File "C:\Python25\lib\subprocess.py", line 545, in __init__
raise TypeError("bufsize must be an integer")
TypeError: bufsize must be an integer
Hat jemand noch 'nen Tip für mich ?
Grüße,
Ralf
Verfasst: Donnerstag 11. September 2008, 14:47
von Leonidas
Ricky hat geschrieben:Jetzt wüßte ich bloß noch gern, wie ich dem Modul gp_win32.py eben beibringe, diese Funktion zu verwenden ...
Steht in der Dokumentation.
Ricky hat geschrieben:Importieren von subprocess in gp_win32.py funktioniert schonmal nicht:
Importieren klappt, sonst könntest du ja nicht der Klasse Popen im Modul subprocess nicht die falscher Parameter mitgeben sondern hättest einen ImportError.