Python3.7でPyAudioがインストールできない時の解決法

  • このエントリーをはてなブックマークに追加

Pythonで音声の録音をしたい時、PyAudioがよく使われています。しかし2019年5月時点ではPython3.7でインストールするとエラーが出るようです。今回はそのエラーを回避する方法を紹介します。

こんにちは。wat(@watlablog)です。
今回は音声録音でお世話になるPyAudioのインストール時に発生する問題を解決します

Pythonプログラミングの基本文法や問題解決には体系的な学習プログラムが効果的です。手っ取り早く基礎を覚えるために僕は「PyQ(パイキュー)」に登録してみました。気になる方は「PyQでPython学習!実際に登録してみた感想と気になる料金」という記事を参照下さい!

Python3.7環境でPyAudioをインストールするとエラーになる(Windows)

Advertisements

Pythonで音声を録音して色々分析する場合、「PyAudio」という外部ライブラリパッケージが便利なようです。

ネットでも情報が多いので、是非このライブラリ使いたい!と思いきや、今回僕はインストール時のエラーに悩まされましたので、解決までの道のりを紹介します。

エラーはいやだよね。
でも、なんとか解決する道を探そう!

インストール時の環境

まず、インストール時の状況を整理します。

エラーは2019年5月20日に、以下の表のマシン環境で発生しました。Pythonのバージョンはコマンドプロンプトに「python -V」と、pipのバージョンは「python -m pip -V」と打てば調査することができます。

エラー発生日2019年5月20日
OSWindows10 Home
ビット数64bit
PythonバージョンPython3.7.3
pipバージョンpip019.0.3

この辺の内容は、
Pythonインストール方法とAnacondaを使わない3つの理由」、
Pythonのパッケージ管理ツール pipの使い方とコマンド集
で出て来た内容ですね。僕自身も過去の記事を見返して思い出しています。

いちいち覚えてられんもんな。

特に今までは問題無く使えていましたが、この環境でエラーが発生しました。

※ちなみに筆者はmacOSも使っていますが、こちらは特にPython3.7でも問題無くインストール可能でした。しかしportaudioが必要だったりするので、詳しくは「PythonのPyAudioで音声録音する簡単な方法」に記載しましたのでご確認下さい。

エラー内容

エラーはpipを使ってインストールするタイミングで発生します。いつものように以下のコマンドでインストールを試みると…

以下の図のようにエラーメッセージが出ます。

エラーの原因

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のダウンロードサイトに行きましょう。
リンクを以下に再掲します。

Microsoft Downloads

ここがわかりにくい所ですが、画面の下までスクロールすると、「Visual Studio 2019のツール」があります。

このツールの右側にあるプラスマークをクリックして中身を開くと、「Build Tools for Visual Studio 2019」があります。これが目的のツールです。
※間違って一番上のVisual Studio 2019をダウンロードしないように注意。

Visual C++ Build Toolsのダウンロード

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.
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!

stack overflow: PyAudio

上の方はAnaconda環境における問題の解決策について述べていますが、注目すべきは中間部分にあるURL。

この人はここからPyAudio最新の.whl ファイルを直接ダウンロードしてpipでインストールし解決したそうです。

結論から言うと、この方法で問題は解決しました

上記引用部分中間にある「https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyaudio」をクリックすると、ファイルリストページが表示されます。今回はPython3.7, Windows64bitで使いたいので、以下の画像のファイルをダウンロードしました。

stack overflowの回答者はpipでインストールする時の正規の場所にファイルを置いてインストールしていましたが、僕の場合はコマンドプロンプトのカレントディレクトリの直下にダウンロードしたファイルを置いて、以下のコマンドで直接インストールしました。

「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)のフォローお待ちしています!

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメント

  1. 通りすがり より:

    pipのバージョンは「python -m -pip -V」と記載されてますが、正しくは「python -m pip -V」のようです。

    1. wat より:

      完全に誤記でしたので修正しました!ご連絡誠にありがとうございます!
      本当に助かります!

  2. たお より:

    C++のインストールはエラーが出ていたとしても、後者のwhlのインストールだけでうまくできましたよ。

    1. wat より:

      なるほど、こちらは順番にエラーを解決していましたが、whlのインストールを先にすることで解決するんですね。
      新しい情報ありがとうございました!

  3. ch3cooh より:

    ありがとうございます、助かりました。
    Visual C++ Build Toolsインストール後にpipでpyaudioをインストールしようとすると「warning C4005: ‘MS_WIN64’: マクロが再定義されました。」とエラーが出てきてどうしたらよいのかと思っていたところでした。

    1. wat より:

      ご訪問、ご報告ありがとうございます。
      解決されたようで何よりです。

  4. garu より:

    Python初心者です。pyaudioの導入で少し迷っていてコマンドからインストールですが…コマンド以外のインストール方法はありますか?

    1. wat より:

      ご訪問ありがとうございます。
      コマンド以外というとpipインストール以外ということでしょうか。
      申し訳ございませんが、PyAudioのGUIインストーラがあるかどうかはわかりません。
      コマンドインストール以外を必要とする理由がわかれば何か解決策が見つかるかも知れません。

      例えば、同じくコマンドを使いますが、オフライン環境にインストールしたい場合は以下の方法があります。
      https://watlab-blog.com/2020/03/16/pip-proxy-error/

  5. しゅう より:

    本を購入して勉強している初心者です。
    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.

    1. wat より:

      ご訪問、書籍のご購入ありがとうございます。
      外部ライブラリはバージョン関係でエラーが出る場合がよくあります。
      この記事ではPython3.7を使っている古い記事なのでcp37の.whlが適していますが、
      しゅうさんのお使いのPythonのバージョンは3.7ですか?

      ちなみに書籍ではPython3.12.3を使っていました。
      まずはバージョンのご確認をお願いします。

コメントを残す

*