よなかのすうがく

Audio signal processing and Electronic kit, and hobby.

PyAudio環境構築

将来的に音響解析などに手を出したいと思ったのは良かったのだが、それを行う言語をどうしようと悩みあげた挙句、pythonさんを利用することにした。理由はmatlabとかお金かかるし、最近はpythonさんが人気あるとか、そんな感じ。

ただ決めたのは良かったのだけど、PyAudioの環境構築に中々手間取ったので備忘録。



追記(15/05/25):
Anaconda 2.2.0の中に既にpyaudioがあるもよう。そのため色々と中身を変更しました。


開発環境 : Yosemite(10.10.3), Python 2.7.8 :: Anaconda 2.1.0Python 2.7.9 :: Anaconda 2.2.0 (x86_64)



まず最初にpyenvを使ってAnaconda 2.2.0をインストールしてから、中身を確認。conda listでもpip listでもどちらでもいいです。
Pyenvの導入方法は色んなとこで解説しているのでそちらを参照してください。

$ pyenv install anaconda-2.2.0
$ pip list
    :
PyAudio (0.2.7)
    :

そしたらPyAudio (0.2.7)の文字が見つかるはず。もうここでインストールが完了してるんですね。
では次にpip show PyAudioで詳細を聞いてみます。

$ pip show PyAudio
---
Metadata-Version: 1.0
Name: PyAudio
Version: 0.2.7
Summary: PortAudio Python Bindings
Home-page: http://people.csail.mit.edu/hubert/pyaudio/
Author: Hubert Pham
Author-email: UNKNOWN
License: UNKNOWN
Location: /Users/muk/.pyenv/versions/anaconda-2.2.0/lib/python2.7/site-packages
Requires: 

Locationが書かれているので以下の方法でPATHを通しましょう。

  • 確認
> python
   :
>>> import sys
>>> sys.path

これで表示されたものの中に先ほどのLocationが含まれていれば万々歳。
なければ以下の方法でパスを通しましょう。

  • インポートする側のソースファイルで対処
import sys
sys.path.append('/Users/$USER/.pyenv/versions/anaconda-2.2.0/lib/python2.7/site-packages')
  • シェル(.bash_profile)で対処
export PYTHONPATH=/Users/$USER/.pyenv/versions/anaconda-2.2.0/lib/python2.7/site-packages:$PYTHONPATH

自分はいちいちソースに書くのが面倒なので後者を取っています。
多分、このままpyaudio使っても何も言われることなく動くと思われます。やったね。

それにしても前にやった時より遥かに楽になりました。
いや、もしかしたらanaconda-2.1.0にも入ってたかもしれないのに無駄に遠回りしてた可能性がありますね……。反省します。


PyAudioは3.3までしか対応していないらしく、3.3でやるよりかは2.7のほうがやりやすそうなので2.7で開発環境を組んでいます。というかPythonもロクに触ってない自分にはこれ以上はシンドいです……。