Python3.10.1 / Windows10 に PyAudio をインストールする
必要なもの: Microsoft Visual Studio 統合環境 https://github.com/intxcc/pyaudio_portaudio/releases PyAudio 3.7用 Source code (zip) ソースコードを展開し、Visual Studio から \pyaudio_portaudio\pyaudio\portaudio-v19\build\msvc\portaudio.sln を開き、構成:Release、プラットフォーム:x64 でコンパイル。 うまく行けば、 \portaudio-v19\build\msvc\x64\Release\portaudio.lib が出来る。過去に作ったことがあるなら、それを持ってきても良い。 あとは \pyaudio_portaudio\pyaudio に戻り、 python.exe .\setup.py install --static-link とすればインストール完了。 warning message: Anaconda3\envs\py3.10.1\include\pyconfig.h(117): warning C4005: 'MS_WIN64': マクロが再定義されました。 pyaudio_portaudio\pyaudio\setup.py(74)のdefines.append(('MS_WIN64', '1'))を、defines.append(('MS_WIN64', 'True'))に変更。 src/_portaudiomodule.c(2314): warning C4996: 'PyEval_InitThreads': deprecated in 3.9 PyEval_InitThreads() は 3.9 から非推奨、3.11 で廃止なので、Py_Initialize() に書き換え。 https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyaudio ここがよく紹介されてるけど、input = True にすると、 OSError: [Errno -9998] Invalid number of channels とエラーがでてうまく動かない…
Python + OpenCV + CUDA
Python(3.7.3) + OpenCV(4.1.0) + CUDA(10.1) を Visual Studio 2019 で作ったが、 (base) C:\python>python.exe -c "import cv2; print(cv2.__version__)" Traceback (most recent call last): File "", line 1, in File "C:\Anaconda3\lib\site-packages\cv2\__init__.py", line 89, in bootstrap() File "C:\Anaconda3\lib\site-packages\cv2\__init__.py", line 79, in bootstrap import cv2 ImportError: DLL load failed: 指定されたモジュールが見つかりません。 なかなか気付かずに、いろいろ試してみたが、 dumpbin.exe /DEPENDENTS cv2.cp37-win_amd64.pyd 原因は CUDA(10.1) のパスが通ってない。いつものこと。 path = %PATH%;C:\CUDA\10.1\bin これで OpneCV から直接GPUエンコードが出来る! out_image = cv2.cudacodec.createVideoWriter(cap, (width, height), FPS) >> error: (-213:The function/feature is not implemented) まだ当面 ffmpeg + pipe でやるしかないのね…