WindowsでProphetを使う方法

Pythonで Prophet を使ってみたかったのですが、インストールが大変だったのでメモ。WindowsではおそらくC++コンパイラか何かが原因でインストールが難しい。そこで、Dockerを使うことにしました。

Dockerfile

FROM ubuntu:18.04

RUN apt-get update && \
    apt-get install -y tzdata && \
    apt-get install -y curl wget git ssh vim

# Pythonのパッケージインストール
RUN apt-get install -y python3-pip
RUN pip3 install --upgrade pip
RUN mkdir /data
COPY requirements.txt /data
RUN pip3 install -r /data/requirements.txt

# notebookのエイリアス
RUN touch ~/.bashrc
RUN echo 'alias jup="jupyter notebook"' >> ~/.bashrc

requirements.txtは本記事の最後に載せています。numpy, pandas, matplotlibはもちろん入っていて、scikit-learn, statsmodels, jupyter, seaborn, Daskなども入れています。ミニマムはpystanとfbprophetなので、そこから追加していってもよいでしょう。

build

docker build . -t prophet_image

run

docker run -it --name prophet_container -p 8001:8000 -v %CD%/mnt:/data/mnt prophet_image bash

※PowerShellでは%CD%の代わりに$PWD

startは docker start prophet_container

attachは docker attach prophet_container

detachは [Ctrl]+p, [Ctrl]+q

notebook起動

jup --port 8000 --ip=0.0.0.0 --allow-root

コマンドラインのhttp://127.0.0.1:8000/?token=xxxをコピーして、ポートを8001に変えてブラウザからアクセス

requirements.txt

argon2-cffi==20.1.0
asn1crypto==0.24.0
async-generator==1.10
attrs==20.2.0
backcall==0.2.0
bleach==3.2.1
bokeh==2.2.1
certifi==2020.6.20
cffi==1.14.3
chardet==3.0.4
click==7.1.2
cloudpickle==1.6.0
cmdstanpy==0.9.5
contextvars==2.4
convertdate==2.2.2
cryptography==2.1.4
cycler==0.10.0
Cython==0.29.21
dask==2.29.0
decorator==4.4.2
defusedxml==0.6.0
distributed==2.29.0
entrypoints==0.3
ephem==3.7.7.1
fbprophet==0.7.1
fsspec==0.8.3
HeapDict==1.0.1
holidays==0.10.3
idna==2.6
immutables==0.14
importlib-metadata==2.0.0
ipykernel==5.3.4
ipython==7.16.1
ipython-genutils==0.2.0
ipywidgets==7.5.1
jedi==0.17.2
Jinja2==2.11.2
joblib==0.17.0
jsonschema==3.2.0
jupyter==1.0.0
jupyter-client==6.1.7
jupyter-console==6.2.0
jupyter-core==4.6.3
jupyterlab-pygments==0.1.2
keyring==10.6.0
keyrings.alt==3.0
kiwisolver==1.2.0
korean-lunar-calendar==0.2.1
locket==0.2.0
LunarCalendar==0.0.9
MarkupSafe==1.1.1
matplotlib==3.3.2
mistune==0.8.4
msgpack==1.0.0
nbclient==0.5.0
nbconvert==6.0.7
nbformat==5.0.7
nest-asyncio==1.4.1
notebook==6.1.4
numpy==1.19.2
packaging==20.4
pandas==1.1.2
pandocfilters==1.4.2
parso==0.7.1
partd==1.1.0
patsy==0.5.1
pexpect==4.8.0
pickleshare==0.7.5
Pillow==7.2.0
plotly==4.11.0
prometheus-client==0.8.0
prompt-toolkit==3.0.7
psutil==5.7.2
ptyprocess==0.6.0
pycparser==2.20
pycrypto==2.6.1
Pygments==2.7.1
pygobject==3.26.1
PyMeeus==0.3.7
pyparsing==2.4.7
pyrsistent==0.17.3
pystan==2.19.1.1
python-dateutil==2.8.1
pytz==2020.1
pyxdg==0.25
PyYAML==5.3.1
pyzmq==19.0.2
qtconsole==4.7.7
QtPy==1.9.0
requests==2.18.4
retrying==1.3.3
scikit-learn==0.23.2
scipy==1.5.2
seaborn==0.11.0
SecretStorage==2.3.1
Send2Trash==1.5.0
setuptools-git==1.2
six==1.11.0
sortedcontainers==2.2.2
ssh-import-id==5.7
statsmodels==0.12.0
tblib==1.7.0
terminado==0.9.1
testpath==0.4.4
threadpoolctl==2.1.0
toolz==0.11.1
tornado==6.0.4
tqdm==4.50.0
traitlets==4.3.3
typing-extensions==3.7.4.3
urllib3==1.22
wcwidth==0.2.5
webencodings==0.5.1
widgetsnbextension==3.5.1
zict==2.0.0
zipp==3.2.0

コメント

タイトルとURLをコピーしました