python環境構築に決定版がないと感じている
- condaとpipは混在させてはいけない
- virtualenv or pyenv or pipenv or ...
それDocker for Windowsで
- wsl使わない
- 建前:なるべくピュアでシンプルな環境にしたい
- 建前:色んなPython環境つくれる
- 現実:(SEP利用かつバージョン指定な制約付きの環境で)SEPが古くてWin10 updateと非互換なためwsl使えない
- dockerコンテナではsshd動かさない->理由
- インストール手順は書きません、特にトラブルなく動いてしまうハズ参考つけときます
Dockerの使い心地を確認する
power_shell
>docker pull ubuntu
>docker run -it ubuntu
ubuntu
$apt update
$apt install python3-tk tk-dev
$apt install python3-pip
$pip3 install matplotlib chainer
$wget https://github.com/chainer/chainer/archive/v4.0.0.tar.gz
$tar xzf v4.0.0.tar.gz
$python3 chainer-4.0.0/examples/mnist/train_mnist.py
- DISPLAYが無いぞと怒られます(想定とおり)
VcXsrv(インストール手順は省略)
この記事の美味しいところはここ
- ubuntuに環境変数
DISPLAY=10.0.75.1:0.0
を設定する
- localhostじゃない
- IPは一応ipconfigでDockerNATの値を確認してください
- 渡し方は
docker run -e DISPLAY=..
でもexport DISPLAY=..
でも
- VcXsrvのアクセスコントロールをオフにする(危険)
- Xauthがうまいこと動きませんでした(32bit版、64bit版両方試したのですが)
- 本当はXauthしたいです、やりかた教えてください
-
xhost +[hostname]
でもいいのですがdocker -h hostname
と合わせたけどやっぱり上手くいきませんでした - 起動オプション
vcxsrv -ac -multiwindow
- Windowsファイアウォールに穴をあける
コントロール パネル\システムとセキュリティ\Windows ファイアウォール\許可されたアプリ
-
VcXsrv windows xserver
を許可する - 答えを書くと単純なのですがずっとここが気づけませんでした
以上で動くはず
- plotしたり、物体検知したりどうぞ
別解
- 試してないけどWindowsで直接描画しなくてよいならXvfb を使って仮想ディスプレイを作るという手もありそうです
python公式dockerイメージは不採用
docker pull python
- 700MBて重過ぎ
おわり