0

Linux では、visca.py という次の Python ソース ファイルがあります。

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

シェルで 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シェルに直接入力すると

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

できます。どうしたの?

4

1 に答える 1

0

それはあなたに言っていますbufsize must be an integerpresetスクリプトで設定した値は整数ではないと推測します(整数0.0ではなく浮動小数点数であることに注意してください)。関数で引数を出力して、引数が何であるかを簡単に確認してください。

于 2013-07-07T02:01:21.870 に答える