WindowsホストのDocker環境でTensorFlowを使っているが、音声処理をしたいと思ってPyAudioライブラリを導入しようとしたところつまづいたのでメモを走り書き
後で書き直すかも
環境
WindowsホストのDocker使用の仮想環境
要はUbuntuだったらできるだろうと思われる
目的
TensorFlowとPyAudioを同時に使いたい
まず、いつもはどのような手順で仮想環境を環境を立ち上げてるかと言うと
//////////////////////////////////////////////////////////
-Docker Quickstart Terminalを立ち上げる(仮想マシン[default]が起動)
Oracle VM VirtualBox マネージャーで
[いつも使ってる仮想マシン名]を起動
次を実行
$ docker-machine ssh [いつも使ってる仮想マシン名]
boot2dockerで次を実行
$ docker run -v //c/Users/********/tensorflow:/root -it b.gcr.io/tensorflow/tensorflow:latest-devel
(上記設定により下記のディレクトリがwindowsとtensorflowで共有される
C:\Users********\tensorflow)
これでpythonを、1行ずつ実行は
$ python
テキストファイルで実行は
$ python file名
//////////////////////////////////////////////////////////
pyaudioをインストールしたいが、
$ pip pyaudio --proxy=http://**************:8080
とやってもうまくインストールできなかった
portaudioが必要とか何とか色々あるが…
どうやらapt-get と言うやつを使うらしい
必要ならプロキシ設定をしておく
$ export http_proxy="http://your.proxy.address:8080/"
インストールできるライブラリのリストをとりにいく
$ apt-get update
リスト内にpyaudioがあるか検索
$ apt-cache search portaudio
pyaudioらしきもの(python-pyaudio)があったのでインストール
$apt-get install python-pyaudio
pip listで確認してみると
$pip list
ちゃんとPyAudio(0.2.7)があった!
しかしここで、コンテナを落してから上の仮想環境起動の
$ docker run -v //c/Users/********/tensorflow:/root -it b.gcr.io/tensorflow/tensorflow:latest-devel
をやると、PyAudioのインストールされていない新しいコンテナが立ち上がるだけ。試しに
$ pip list
をやるとPyAudio(0.2.7)がないはず
なので、さきほどと同じコンテナを立ち上げる
今まで作成したコンテナを確認する
$ docker ls -a
PyAudioをインストールしたコンテナを見つけ、コンテナ名を確認する。仮の名前がついている。
docker@*****:~$ docker ps -a
CONTAINER ID IMAGE COMMAND
CREATED STATUS PORTS NAM
ES
017422a67b2e b.gcr.io/tensorflow/tensorflow:latest-devel "/bin/bash"
About an hour ago Exited (0) About an hour ago stu
pefied_einstein
c2dffdeba366 b.gcr.io/tensorflow/tensorflow:latest-devel "/bin/bash"
About an hour ago Exited (0) 12 seconds ago tco
ntainer
9b29177d149a simage "/bin/bash"
About an hour ago Exited (0) About an hour ago sco
ntainer
何分前にコンテナから抜けたかで探す。ここではstupefied_einsteinとかtcontainerとかscontainerが名前
名前をわかりやすい名前に変えておく
$ docker rename 旧名前 新しい名前
コンテナをstartで起動してattachで入る
$ docker start 新しい名前
$ docker attach 新しい名前
しっかりpyaudioがインストールされているか
dockerとwindowsでファイル共有できているか
など確認
$ pip list
ちゃんとPyAudioがある
$ touch test
ちゃんと共有したフォルダ(ここではC:\Users********\tensorflow)にtestファイルができた
PyAudioはサウンドカードを使うみたいなので
VirtualBoxの設定からオーディオ、オーディオを有効化にチェックがいるかも、仮想マシンを落としてから設定しておく
音を鳴らすのは試行錯誤中