
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を使っていました。
まずはバージョンのご確認をお願いします。
いつもありがとうございます。
少しずつ勉強しています。
from ultralytics import YOLO
model = YOLO(‘yolov8n.pt’)
のところで、
UnpicklingError
という形で、それ以降に進めていません。いろいろ調べてみたのですが、わかりませんでした。考えられるものがあれば、教えてください。
お問い合わせありがとうございます。
UnpicklingErrorはpickleオブジェクトファイルを開く時に発生するエラーで、少なくとも次の要因が考えられます。
・ダウンロードしたファイルが破損している
yolov8n.ptファイルを削除してやり直し、同じエラーが出るかどうか確認する。
・ultralyticsのバージョンが異なる
まずは書籍と同じPythonのバージョンで、ultralyticsも8.2.12を使ってみて同じエラーが出るかどうか確かめる。
この場合、一度pip uninstall ultralyticsでアンインストールしてから、
再度pip install ultralytics==8.2.12を実行する必要があります。
YOLOまで進んでいるということはあとすこしですね!
少しでもお力になれるよう、気になる点があれば追加のご質問をしてみてください。
よろしくお願いいたします。
ありがとうございます。
一度、削除して、8.2.12を試しましたが、同じエラーでした。エラーがでると、英語を見ながら考えるのも、慣れてきました。
今回のエラーは、WEB上にもあまり参考になるものを見つけられないので、お手上げ状態になってきました。
もし試す方がいいないようがあれば、教えてください。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
UnpicklingError: Weights only load failed. This file can still be loaded, to do so you have two options, do those steps only if you trust the source of the checkpoint.
(1) In PyTorch 2.6, we changed the default value of the
weights_only
argument intorch.load
fromFalse
toTrue
. Re-runningtorch.load
withweights_only
set toFalse
will likely succeed, but it can result in arbitrary code execution. Do it only if you got the file from a trusted source.(2) Alternatively, to load with
weights_only=True
please check the recommended steps in the following error message.WeightsUnpickler error: Unsupported global: GLOBAL ultralytics.nn.tasks.DetectionModel was not an allowed global by default. Please use
torch.serialization.add_safe_globals([DetectionModel])
or thetorch.serialization.safe_globals([DetectionModel])
context manager to allowlist this global if you trust this class/function.Check the documentation of torch.load to learn more about types accepted by default with weights_only https://pytorch.org/docs/stable/generated/torch.load.html.
これまで自分はバージョン関係さえ揃えればだいたいうまくいっていました。
メッセージを見るとtorchに関連したものがありますね。
pip listで表示されるtorchのバージョンは何でしょうか?
もし教えていただければこちらで仮想環境を用意して、うまくいくバージョンは何なのかをチェックしようと思います。
お手数をおかけしてしまって申しわけありません。PIP LISTの一部をお送りします。
torch 2.6.0
torchvision 0.21.0
tornado 6.4.2
tqdm 4.67.1
traitlets 5.14.3
types-python-dateutil 2.9.0.20241003
typing_extensions 4.12.2
tzdata 2025.1
ultralytics 8.2.12
週末に勉強しているので、間隔があいてしまいすみませんでした。もしお時間があればアドバイスいただければと思います。先にお礼申し上げます。
ちょっと調べてみました。
結果的にはこちらの環境でも再現しました。
ultralyticsをインストールした時、torchも依存ライブラリとして自動的にインストールされます。
書籍が出た時は問題なかったのですが、現在書籍通りにインストールを進めるとtorchのバージョンが2.6になります。
torchのバージョンが2.6以降の場合、セキュリティの観点で施されたアップデートが今回のエラーの原因です。
◼️簡単な対策方法
以下のコマンドを実行してtorchをアンインストールする。
pip uninstall torch
その後、以下のコマンドを実行してバージョンダウン版のtorchをインストールする。
pip install torch==2.5
これでこちらの環境ではコードが動作するようになりました。
torch==2.6で解決する方法は、ultralyticsの内部コードで呼び出されているtorch.loadでweights_only=Falseを書けば良いらしいですが、こちらは上級の解決方法になります。
これは現段階で起こるべくして起こっているので、貴重な情報としてブログにも解決方法を示しておこうと思います。
まずはしゅうさんの方で解決するかご確認いただけませんでしょうか?
よろしくお願いいたします。