Pythonで音声の録音をしたい時、PyAudioがよく使われています。しかし2019年5月時点ではPython3.7でインストールするとエラーが出るようです。今回はそのエラーを回避する方法を紹介します。
こんにちは。wat(@watlablog)です。
今回は音声録音でお世話になるPyAudioのインストール時に発生する問題を解決します!
Pythonプログラミングの基本文法や問題解決には体系的な学習プログラムが効果的です。手っ取り早く基礎を覚えるために僕は「PyQ(パイキュー)」に登録してみました。気になる方は「PyQでPython学習!実際に登録してみた感想と気になる料金」という記事を参照下さい!
Python3.7環境でPyAudioをインストールするとエラーになる(Windows)
Pythonで音声を録音して色々分析する場合、「PyAudio」という外部ライブラリパッケージが便利なようです。
ネットでも情報が多いので、是非このライブラリ使いたい!と思いきや、今回僕はインストール時のエラーに悩まされましたので、解決までの道のりを紹介します。
エラーはいやだよね。
でも、なんとか解決する道を探そう!
インストール時の環境
まず、インストール時の状況を整理します。
エラーは2019年5月20日に、以下の表のマシン環境で発生しました。Pythonのバージョンはコマンドプロンプトに「python -V」と、pipのバージョンは「python -m pip -V」と打てば調査することができます。
エラー発生日 | 2019年5月20日 |
OS | Windows10 Home |
ビット数 | 64bit |
Pythonバージョン | Python3.7.3 |
pipバージョン | pip019.0.3 |
この辺の内容は、
「Pythonインストール方法とAnacondaを使わない3つの理由」、
「Pythonのパッケージ管理ツール pipの使い方とコマンド集」
で出て来た内容ですね。僕自身も過去の記事を見返して思い出しています。
いちいち覚えてられんもんな。
特に今までは問題無く使えていましたが、この環境でエラーが発生しました。
※ちなみに筆者はmacOSも使っていますが、こちらは特にPython3.7でも問題無くインストール可能でした。しかしportaudioが必要だったりするので、詳しくは「PythonのPyAudioで音声録音する簡単な方法」に記載しましたのでご確認下さい。
エラー内容
エラーはpipを使ってインストールするタイミングで発生します。いつものように以下のコマンドでインストールを試みると…
1 |
python -m pip install pyaudio |
以下の図のようにエラーメッセージが出ます。
エラーの原因
pipのバージョンが古い?→違いました。
上記エラーメッセージは「Microsoft Visual C++ 14.0 is ...」と書いてありますが、その下に、「pipのバージョン新しくなってるよ!このコマンドで新しくしてみて!」とアップデートを促されています。
もしかして、pipのバージョンを新しくすれば自動的にPyAudioをインストールしてくれるようになるかも!?
淡い期待を込めて「python -m -pip install --upgrade pip」と打ち込んでpipを最新版に更新し、再度PyAudioのインストールを試みましたが、
さっきと同じでした!
これじゃないんかい!
無駄にpipが更新されました。
エラー内容をよく見てみる
エラーメッセージはちゃんと内容を伝えてくれています。英語でも臆せず読んでみましょう。
error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": https://visualstudio.microsoft.com/downloads/
https://visualstudio.microsoft.com/ja/downloads/
中学レベルの英語でした。要は「このURLからBuild Toolsをゲットして」ということのようです。
では早速インストールをして解決しましょう!
エラー解決方法
Visual C++ Build Toolsのダウンロード
エラーメッセージに書いてあるURLアドレスを使って、Microsoftのダウンロードサイトに行きましょう。
リンクを以下に再掲します。
ここがわかりにくい所ですが、画面の下までスクロールすると、「Visual Studio 2019のツール」があります。
このツールの右側にあるプラス+マークをクリックして中身を開くと、「Build Tools for Visual Studio 2019」があります。これが目的のツールです。
※間違って一番上のVisual Studio 2019をダウンロードしないように注意。
「vs_buildtools__2017426784.1558363486.exe」というファイルがダウンロードされたはずです(細かい数字はダウンロードしたバージョンによって異なると思います)。
Visual C++ Build Toolsのインストール
ダウンロードした「vs_buildtools__2017426784.1558363486.exe」をダブルクリックして起動し最初の画面で「続行」をクリックすると、しばらくしてインストールの設定画面が開きます。
「C++ Build Tools」というのが所望のBuild Toolsなので、これにチェックを付けて「インストール」をクリックします。
PyAudioを直接ダウンロードしてインストールする
上記までの操作でBuild Toolsはインストールされましたが、pipで再度インストールを試みると再度大量のエラーが…!
日本語のサイトでは「PyAudioはPython3.6で使うのが無難」との意見が大半でしたが、色々探しているとstack overflowというサイトに気になる文章がありました。
I faced a similar issue.
stack overflow: PyAudio
The only way I was able to resolve this was by uninstalling anaconda, installing the latest version of python, and reinstalling the latest version of conda.
I then downloaded the latest .whl file for pyaudio which can be found here: https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyaudio
I moved this file from my downloads and into the site-packages folder of anaconda3: C:\Users\Projects\Anaconda3\Lib\site-packages
Upon running the command 'pip install pyaudio' OR 'python -m pip install pyaudio' in the anaconda prompt I was good to go
I hope this helps!
上の方はAnaconda環境における問題の解決策について述べていますが、注目すべきは中間部分にあるURL。
この人はここからPyAudio最新の.whl ファイルを直接ダウンロードしてpipでインストールし解決したそうです。
結論から言うと、この方法で問題は解決しました。
上記引用部分中間にある「https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyaudio」をクリックすると、ファイルリストページが表示されます。今回はPython3.7, Windows64bitで使いたいので、以下の画像のファイルをダウンロードしました。
stack overflowの回答者はpipでインストールする時の正規の場所にファイルを置いてインストールしていましたが、僕の場合はコマンドプロンプトのカレントディレクトリの直下にダウンロードしたファイルを置いて、以下のコマンドで直接インストールしました。
1 |
python -m pip install .\PyAudio-0.2.11-cp37-cp37m-win_amd64.whl |
「Successfully」の文字が出れば終了です。PyCharm等で「import pyaudio」でエラーが出ないかどうか、またはコマンドプロンプトで「python -m pip show pyaudio」でNumPy等と同じ場所にちゃんとインストールされているかを確認してみて下さい。
…今回は解決まで調査に時間がかかった!
まとめ
Python3.7でPyAudioをインストールする場合、2019年5月現在だとエラーが発生します。
しかしPython3.7に対応していないわけではなく、インストール時の交通整理がまだ上手くいっていないことが問題のようです。
解決方法は、エラー文で出て来た①MicrosoftのBuild Toolsを入れる、②PyAudioのインストーラを直接指定してインストールする、の2つでした。
エラーはプログラミングにつきもの!
情報は海外のWebも活用して取り入れると良いかも!
Twitterでも関連情報をつぶやいているので、wat(@watlablog)のフォローお待ちしています!
pipのバージョンは「python -m -pip -V」と記載されてますが、正しくは「python -m pip -V」のようです。
完全に誤記でしたので修正しました!ご連絡誠にありがとうございます!
本当に助かります!
C++のインストールはエラーが出ていたとしても、後者のwhlのインストールだけでうまくできましたよ。
なるほど、こちらは順番にエラーを解決していましたが、whlのインストールを先にすることで解決するんですね。
新しい情報ありがとうございました!
ありがとうございます、助かりました。
Visual C++ Build Toolsインストール後にpipでpyaudioをインストールしようとすると「warning C4005: ‘MS_WIN64’: マクロが再定義されました。」とエラーが出てきてどうしたらよいのかと思っていたところでした。
ご訪問、ご報告ありがとうございます。
解決されたようで何よりです。
Python初心者です。pyaudioの導入で少し迷っていてコマンドからインストールですが…コマンド以外のインストール方法はありますか?
ご訪問ありがとうございます。
コマンド以外というとpipインストール以外ということでしょうか。
申し訳ございませんが、PyAudioのGUIインストーラがあるかどうかはわかりません。
コマンドインストール以外を必要とする理由がわかれば何か解決策が見つかるかも知れません。
例えば、同じくコマンドを使いますが、オフライン環境にインストールしたい場合は以下の方法があります。
https://watlab-blog.com/2020/03/16/pip-proxy-error/
本を購入して勉強している初心者です。
PyAudioでエラーがやはりでて、そこから先に進めない状態になりました。
BuildのツールとかはDLしたところまではよかったのですが。
以下の方法も
python -m pip install .\PyAudio-0.2.11-cp37-cp37m-win_amd64.whl
ERROR: PyAudio-0.2.11-cp37-cp37m-win_amd64.whl is not a supported wheel on this platform.
ご訪問、書籍のご購入ありがとうございます。
外部ライブラリはバージョン関係でエラーが出る場合がよくあります。
この記事ではPython3.7を使っている古い記事なのでcp37の.whlが適していますが、
しゅうさんのお使いのPythonのバージョンは3.7ですか?
ちなみに書籍ではPython3.12.3を使っていました。
まずはバージョンのご確認をお願いします。