我正在编写一个小python文件,以通过音频插孔在树莓派上使用sox生成特定频率。我已经安装了Sox,可以通过命令行愉快地调用它,但是我想通过以下方式使用子进程在我的python文件中调用它:
x = subprocess.Popen('play -V -r 44100 -n synth 30 sin 130+150 vol +2dB')
但是,这总是给我错误:
OSError: [Errno 2] No such file or directory
我已经阅读了其他相关文章,并可以使用shell = true如下成功调用它:
x=subprocess.call('play -V -r 44100 -n synth 30 sin 130+150 vol +2dB', shell=True)
但是我不想使用外壳。我希望能够确定该过程是否仍在运行,并且我还想调查暂停并重新启动sox过程。我还没有看这个。
在另一篇文章中,有人建议使用Sox的整个路径,例如:
x=subprocess.call('/usr/bin/play -V -r 44100 -n synth 30 sin 130+150 vol +2dB')
尽管这是我的系统上此命令的路径(使用哪个sox),并且我可以直接从命令行调用此命令,但是在我的python文件中使用时,它会返回相同的错误。有人知道我在这里可能做错了什么吗?
非常感谢。