【问题标题】:Python + Windows: subprocess and bufsizePython + Windows:子进程和 bufsize
【发布时间】:2017-09-22 18:31:22
【问题描述】:

我有一个程序,它可以在 Linux 上完美运行,但 - 真是奇迹 - 不是 Windows。 我已经用 sys 修复了一个错误,并获得了一个新错误:

"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)

【问题讨论】:

标签: python python-3.x


【解决方案1】:

您可能希望将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)

【讨论】:

  • 非常感谢 - 它有效......你完全正确我必须包括 sys.executable!
【解决方案2】:

Popen 构造函数的第二个参数应该是一个整数,你传递的是[player["progname"]]

【讨论】:

    猜你喜欢
    • 2020-11-15
    • 2016-03-13
    • 2010-10-30
    • 2012-01-10
    • 2012-05-11
    • 2021-11-01
    • 2013-07-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多