When Python directs its output to a pipe, rather than directly to a terminal, it defaults to outputting its output by default. I think you can get around this either by passing the -u option when calling Python (for example, python -u myscript.py arg1 arg2 ) to tell it not to buffer, or by calling sys.stdout.flush() throughout your script anytime you want to make sure the output does it on P4V.
See also:
http://kb.perforce.com/article/914/sending-script-output-to-p4vs-custom-tool-terminal
(It looks like this question was asked and answered after you asked here about the stack overflow. Sorry if you already knew this well.)
source share