【发布时间】: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