私はwindowsのノートパソコンを使用しているのですが、先日pythonで録音や再生を行ったり、音声解析を行うことのできるモジュールであるPyaudioを入れようとした際にエラーが発生し少しつまづいたので、自分用の備忘録としてここに記載しておきます。
目次
発生した症状
Pyaudio をインストールしようと
python -m pip install pyaudio
上記のコマンドを入力し、実行したところ
以下のようなエラーが発生した。
Collecting pyaudio
Using cached PyAudio-0.2.11.tar.gz (37 kB)
Building wheels for collected packages: pyaudio
Building wheel for pyaudio (setup.py) ... error
ERROR: Command errored out with exit status 1:
command: 'C:\Users\name\.conda\envs\envs_name\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\name\\AppData\\Local\\Temp\\pip-install-of5bfmjf\\pyaudio\\setup.py'"'"'; __file__='"'"'C:\\Users\\name\\AppData\\Local\\Temp\\pip-install-of5bfmjf\\pyaudio\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d 'C:\Users\name\AppData\Local\Temp\pip-wheel-9pnk89yn'
cwd: C:\Users\name\AppData\Local\Temp\pip-install-of5bfmjf\pyaudio\
Complete output (17 lines):
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-3.7
copying src\pyaudio.py -> build\lib.win-amd64-3.7
running build_ext
building '_portaudio' extension
creating build\temp.win-amd64-3.7
creating build\temp.win-amd64-3.7\Release
creating build\temp.win-amd64-3.7\Release\src
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DMS_WIN64=1 -IC:\Users\name\.conda\envs\envs_name\include -IC:\Users\name\.conda\envs\envs_name\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\8.1\include\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\winrt" /Tcsrc/_portaudiomodule.c /Fobuild\temp.win-amd64-3.7\Release\src/_portaudiomodule.obj
_portaudiomodule.c
c:\users\name\.conda\envs\envs_name\include\pyconfig.h(117): warning C4005: 'MS_WIN64': macro redefinition
c:\users\name\.conda\envs\envs_name\include\pyconfig.h(117): note: command-line arguments: see previous definition of 'MS_WIN64'
src/_portaudiomodule.c(29): fatal error C1083: Cannot open include file: 'portaudio.h': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2
----------------------------------------
ERROR: Failed building wheel for pyaudio
Running setup.py clean for pyaudio
Failed to build pyaudio
Installing collected packages: pyaudio
Running setup.py install for pyaudio ... error
ERROR: Command errored out with exit status 1:
command: 'C:\Users\name\.conda\envs\envs_name\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\name\\AppData\\Local\\Temp\\pip-install-of5bfmjf\\pyaudio\\setup.py'"'"'; __file__='"'"'C:\\Users\\name\\AppData\\Local\\Temp\\pip-install-of5bfmjf\\pyaudio\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\name\AppData\Local\Temp\pip-record-98szi9yd\install-record.txt' --single-version-externally-managed --compile --install-headers 'C:\Users\name\.conda\envs\envs_name\Include\pyaudio'
cwd: C:\Users\name\AppData\Local\Temp\pip-install-of5bfmjf\pyaudio\
Complete output (17 lines):
running install
running build
running build_py
creating build
creating build\lib.win-amd64-3.7
copying src\pyaudio.py -> build\lib.win-amd64-3.7
running build_ext
building '_portaudio' extension
creating build\temp.win-amd64-3.7
creating build\temp.win-amd64-3.7\Release
creating build\temp.win-amd64-3.7\Release\src
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DMS_WIN64=1 -IC:\Users\name\.conda\envs\envs_name\include -IC:\Users\name\.conda\envs\envs_name\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\8.1\include\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\winrt" /Tcsrc/_portaudiomodule.c /Fobuild\temp.win-amd64-3.7\Release\src/_portaudiomodule.obj
_portaudiomodule.c
c:\users\name\.conda\envs\envs_name\include\pyconfig.h(117): warning C4005: 'MS_WIN64': macro redefinition
c:\users\name\.conda\envs\envs_name\include\pyconfig.h(117): note: command-line arguments: see previous definition of 'MS_WIN64'
src/_portaudiomodule.c(29): fatal error C1083: Cannot open include file: 'portaudio.h': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2
----------------------------------------
ERROR: Command errored out with exit status 1: 'C:\Users\name\.conda\envs\envs_name\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\name\\AppData\\Local\\Temp\\pip-install-of5bfmjf\\pyaudio\\setup.py'"'"'; __file__='"'"'C:\\Users\\name\\AppData\\Local\\Temp\\pip-install-of5bfmjf\\pyaudio\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\name\AppData\Local\Temp\pip-record-98szi9yd\install-record.txt' --single-version-externally-managed --compile --install-headers 'C:\Users\name\.conda\envs\envs_name\Include\pyaudio' Check the logs for full command output.
原因
原因はpyaudioモジュールが自分の実行環境(pythonのバージョン)に対応していないからでした。
pyaudioモジュールは現時点(2020/05/30)ではpython3.6までにしか対応しておらず、3.7以降には対応していないそうです。
解決方法
よって解決方法はpythonのバージョンを下げるしかなさそうです。
自分の場合、エラー発生時の環境は以下の通りでした。
エラー発生時の環境
- OS:Windows 10 Home
- python:3.7 (anaconda)
- pip:20.1.1
※ (anacondaで仮想環境を作成)
これを以下のように変更しました。
エラー解決時の環境
- OS:Windows 10 Home
- python:3.6
- pip:20.0.2
※ (anacondaで仮想環境を作成)
すると、以下のようにすんなりとインストールすることができました。
Collecting pyaudio
Downloading PyAudio-0.2.11-cp36-cp36m-win_amd64.whl (52 kB)
|████████████████████████████████| 52 kB 458 kB/s
Installing collected packages: pyaudio
Successfully installed pyaudio-0.2.11
環境の変更方法についてですが、私はanacondaを入れているため、アナコンダ上で新しく仮想環境を構築しました。
自分はANACONDA NAVIGATOR の Environments設定で直接設定しましたが、コマンドで行う場合は
#仮想環境作成
conda create -n 環境名 python=3.6
#作成した環境を起動
activate 環境名
でできます。(Mac OS の場合はsource activate 環境名)