Windows - kører .py direkte mod at køre python blah.py opfører sig anderledes

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har et python script, der bruger subprocess:


import subprocess
print "Running stuff"
subprocess.check\_call(["do\_stuff.bat"])
print "Stuff run"


Hvis dette hedder blah.py, og jeg kører (fra en kommandoprompt):


python blah.py


Jeg får output fra do\_stuff.bat (eller hvad jeg kører).


Hvis dette køres som:


blah.py


Så får jeg ikke output fra do\_stuff.bat, kun udskrivningserklæringerne.


Hidtil set på Windows Server 2003. Python version 2.5.2 (fast der af forskellige grunde).
Kigger på den tilknyttede filtype handling jeg ser:


Python.File='C: \ Python25 \ python.exe' '\% 1'\% *


Så kan nogen forklare forskellen?

Bedste reference


Jeg havde fælles problem ved hjælp af tråde, men al min kode var i python. Tråd kan ikke skrive til standard output ved brug af print. Bare hovedtråd kunne gøre det. Jeg brugte somethnig sådan her


import sys
sys.stdout.write("this was printed by thread")


Jeg ved, at det nok ikke vil hjælpe dig med flagermusfilen ...