2017-06-19 11 views
0

私は現在、ラズベリーパイのYouTubeのためのAmazonエコーと同じようなボイスコマンドを受け取る小さなプロジェクトに取り組んでいます。基本的に私は曲やアーティストを呼び出し、スクリプトは最初の結果(今のところ)を実行します。私は、MPS-YouTubeのバックされているオーディオにYouTubeのビデオをストリーミングするために使用していPython Subprocess - mps-Youtube

ライブラリ、私はこのようになり、それのために行わbashの自動化、持っている:

(echo -e "$1"; echo -e "1") | mpsyt 

を最初の引数は、クエリであること最初の結果が選択されています。

私がいる問題は、これまでのところ、私は(Pythonシェル内でのテスト)これまでのところ、このようになりますsubprocessモジュールを使用して、Pythonでこれを実行することができ、次のとおりです。

cmd = "/home/pi/bash/play_youtube_song.sh 'tears for fears'" 
ps = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT) 
output = ps.communicate()[0] 
print output

しかし、スクリプト単純に戻りコード0を出力し、プログラムが完全に実行されていないように見えます。

Pythonがスクリプトを完全に実行できるようにするためにできることはありますか? 私はbashで&を使ってバックグラウンドで実行しようとしましたが、どちらもうまく動作していないように見えます。曲は再生されません。

ありがとうございます。

+0

がsh' 'でそれを実行している試みたが、私は同じことを取得しています、それがダウンしてサブプロセスは、シェルコマンドを使用する方法にあるかもしれません –

答えて

0

解決済み!

デフォルトでは、サブプロセスは/ bin/shを使用するので、実行可能ファイルを/ bin/bashに変更できるパラメータがあります。

これはbashをshで実行していることを発見しましたが、gnome-terminalではこれを達成していたのに対し、すべての引数をmps-youtubeにエコーしていませんでした。

クレジット:https://www.saltycrane.com/blog/2011/04/how-use-bash-shell-python-subprocess-instead-binsh/

関連する問題