🐳
M1macでpyaudioを動かしたい
前書き
普段は大学で音声分析の研究をしている傍ら、Web開発に勤しんでいます。
今回の記事は、「pyaudioがm1で動かなくて...」と後輩に相談されたので確認してみたところ、どの記事も1年前のもので再現性が低かったので改めて2022年12月現在、動く手段を書き記しています。
m1でpython使うならdocker使おうね
ローカルにpythonやら必要なパス通してやってやらゴニョゴニョして...と言う記事を多く見かけるんですが、ローカル汚れるし理解せずにそれやると沼るんで、docker使おうね!と言う記事です。
早速ファイル
Dockerfile
FROM python:3
USER root
RUN apt-get update
RUN apt-get -y install locales && \
localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
RUN apt-get install -y vim less
RUN apt-get install -y portaudio19-dev
RUN apt-get install -y libasound-dev
RUN apt-get install -y pulseaudio
RUN mkdir -p /root/src
COPY requirements.txt /root/src
WORKDIR /root/src
RUN pip install --upgrade pip
RUN pip install --upgrade setuptools
RUN pip install -r requirements.txt
docker-compose.yml
version: '3'
services:
python3:
platform: 'linux/amd64'
devices:
- /dev/snd
environment:
- PULSE_SERVER=docker.for.mac.localhost
restart: always
build: .
container_name: 'python3'
working_dir: '/root/src'
tty: true
volumes:
- ${PATH_TO_DIR}/root/src
- ~/.config/pulse:/root/.config/pulse
requirements.txt
pyaudio
matplotlib
numpy
wave
# 必要なライブラリを指定
注意点
Dockerfile ではpyaudioの他にportaudioをinstallしてあげる必要があります。
また、docker-compose.ymlではplatform: 'linux/amd64'
を指定してあげる必要があります。
まとめ
mac欲しさにm1に飛びついた訳ですが、pythonと仲が悪く度々苦しめられているので、少しでも救いになれば良いな、といった気持ちです。。。よきm1ライフを!
Discussion