Python 2.5.2 popen Problem

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Ricky
User
Beiträge: 7
Registriert: Mittwoch 10. September 2008, 15:03

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

``dir`` kann man ja auch nicht über ``popen`` einlesen, weil es ein in die Shell eingebauter Befehl ist.

Hint: ``os.listdir``.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ricky
User
Beiträge: 7
Registriert: Mittwoch 10. September 2008, 15:03

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.
Ricky
User
Beiträge: 7
Registriert: Mittwoch 10. September 2008, 15:03

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
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten