2017-09-22 74 views
0

我有一个程序,它可以在Linux上完美运行,但是 - 这是一个奇迹 - 而不是Windows。 我已经修复的bug一个用SYS,并获得一个新问题:Python + Windows:子进程和bufsize

"TypeError: bufsize must be an integer" 

我敢肯定这是一件很容易的,我忘了试戴任何提示?谢谢!

import subprocess 
import sys 
process = subprocess.Popen(sys.executable, [player["progname"]], 
      stdin=subprocess.PIPE, 
      stdout=subprocess.PIPE, 
      universal_newlines=True) 
+0

可能的复制[刷新消息时,bufsize必须是整数错误](https://stackoverflow.com/questions/17824096/bufsize-must-be-an-integer-error-while-grepping-a-message) –

回答

0

你可能想换都sys.executableplayer["progname"]list

process = subprocess.Popen([sys.executable, player["progname"]], 
      ...) 

否则,你传递player["progname"]bufsize参数的构造函数POPEN(https://docs.python.org/3/library/subprocess.html#popen-constructor

+0

非常感谢你 - 它的工作原理...你是完全正确的,我必须包括sys.exe可执行文件! – Ayumika

0

POPEN构造函数的第二个参数应该是一个整数,你逝去的[player["progname"]]