【问题标题】:python subprocess.call argumentspython subprocess.call 参数
【发布时间】:2013-07-07 01:04:43
【问题描述】:

在 Linux 上,我有以下名为 visca.py 的 Python 源文件:

from subprocess import call
def recall(preset):
    call(["visca-cli", "memory_recall", str(preset)])

我在 shell 中打开 python 解释器并导入 visca,然后输入 visca.recall(0) 并获取

Traceback (most recent call last):   File "<stdin>", line 1, in <module>   File "visca.py", line 13, in recall
    subprocess.call(["visca-cli", "memory_recall", str(preset)])   File "/usr/lib/python2.7/subprocess.py", line 493, in call
    return Popen(*popenargs, **kwargs).wait()   File "/usr/lib/python2.7/subprocess.py", line 629, in __init__
    raise TypeError("bufsize must be an integer") TypeError: bufsize must be an integer

但是,如果我直接在 python shell 中输入

>>> from subprocess import call
>>> call(["visca-cli", "memory_recall", "0"])
10 OK - no return value
0

它有效。有什么问题?

【问题讨论】:

  • 对不起,我的错。每次对源文件进行编辑后,我确实重新编译了模块并将其导入,但不知道解释器仍然有我的第一个版本的文件,但参数不正确。在我重新打开解释器后,代码正在运行

标签: python function arguments subprocess


【解决方案1】:

它告诉你bufsize must be an integer。我猜你在脚本中为preset 设置的任何值都不是整数(请记住0.0 是浮点数,而不是整数)。通过在函数中打印出来快速检查您的参数是什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-19
    • 2016-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-29
    相关资源
    最近更新 更多