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.

f:id:happy_teeth_ago:20200411142909p:plain

サーバーログをみると

 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と入力

github.com

もう一度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の公式サイトより

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しておかないと行けない

qiita.com

言われたとおりにする。

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"

medium.com

seleniumがないと言われる

f:id:happy_teeth_ago:20200411155439p:plain

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:/#