Python スクレイピング 環境構築 jupyter notebook
Dockerを利用することに決める
環境が汚れすぎるため
公式サイト このとおりやれば、ほぼ問題ない。 説明もしていきます。 hub.docker.com
$ docker pull continuumio/anaconda3 68ced04f60ab: Pull complete 57047f2400d7: Pull complete 8b26dd278326: Pull complete Digest: sha256:6502693fd278ba962af34c756ed9a9f0c3b6236a62f1e1fecb41f60c3f536d3c Status: Downloaded newer image for continuumio/anaconda3:latest docker.io/continuumio/anaconda3:latest
imageがダウンロードされる
docker run
入力モードになる
$ docker run -i -t continuumio/anaconda3 /bin/bash (base) root@45524bf19980:/#
しかしエラー
A connection to the notebook server could not be established. The notebook will continue trying to reconnect. Check your network connection or notebook server configuration.
サーバーログをみると
from typing import AsyncGenerator, Callable, Iterable, TypeVar, Union ImportError: cannot import name 'AsyncGenerator'
3.6.0では、このリポジトリで維持されている最新バージョンではなく、3.6.0にバンドルされていたタイピングのバージョンを取得します。 私はチェックしていませんが、AsyncGeneratorを最初に見逃して、3.6シリーズの後半に追加したと思います。 2つの考えられる回避策:3.6の新しいバージョンにアップグレードするTYPE_CHECKINGの場合に使用:import AsyncGeneratorと入力
もう一度docker runして、バージョン確認 3.7
$ docker run -i -t continuumio/anaconda3 /bin/bash (base) root@1e4fbf8af2f3:/# python --version //-------- Python 3.7.6
osは3.6のpythonが入っているため、dockerが動いていることが確認できる。
pipの公式サイトより
https://pypi.org/project/asyncgenerator/pypi.org
https://pypi.org/project/asyncgenerator/
pipがないと言われるので
condaにpipをインストール
(base) root@1e4fbf8af2f3:/# conda install pip Collecting package metadata (current_repodata.json): done Solving environment: done
で再度挑戦
注意 :anacondaにインストールするにはactivateしておかないと行けない
言われたとおりにする。
conda info -e # conda environments: # base * /opt/conda $ source /opt/conda/bin/activate
(base) root@1e4fbf8af2f3:/# find / -name "activate" /opt/conda/bin/activate /opt/conda/lib/python3.7/site-packages/conda/shell/bin/activate /opt/conda/lib/python3.7/venv/scripts/common/activate /opt/conda/pkgs/conda-4.8.3-py37_0/bin/activate /opt/conda/pkgs/conda-4.8.3-py37_0/lib/python3.7/site-packages/conda/shell/bin/activate
setuptoolsが必要かも? 入っていた??
(base) root@1e4fbf8af2f3:/# conda install setuptools Collecting package metadata (current_repodata.json): done Solving environment: done # All requested packages already installed.
ここで解決
docker run に--allow-root オプションが必要
$ docker run -it -p 8888:8888 continuumio/anaconda3 /bin/bash -c "/opt/conda/bin/conda install jupyter -y --quiet && mkdir /opt/notebooks && /opt/conda/bin/jupyter notebook --notebook-dir=/opt/notebooks --ip='*' --port=8888 --no-browser --allow-root"
seleniumがないと言われる
dockerの起動 conda でselenium をインストール
$ docker run -i -t continuumio/anaconda3 /bin/bash (base) root@8055dca3acb7:/# conda install selenium Collecting package metadata (current_repodata.json): done Solving environment: done ## Package Plan ## environment location: /opt/conda added / updated specs: - selenium The following packages will be downloaded: package | build ---------------------------|----------------- conda-4.8.3 | py37_0 2.8 MB selenium-3.141.0 | py37h7b6447c_0 807 KB ------------------------------------------------------------ Total: 3.6 MB The following NEW packages will be INSTALLED: selenium pkgs/main/linux-64::selenium-3.141.0-py37h7b6447c_0 The following packages will be UPDATED: conda 4.8.2-py37_0 --> 4.8.3-py37_0 Proceed ([y]/n)? y Downloading and Extracting Packages selenium-3.141.0 | 807 KB | ################################################################## | 100% conda-4.8.3 | 2.8 MB | ################################################################## | 100% Preparing transaction: done Verifying transaction: done Executing transaction: done (base) root@8055dca3acb7:/#