背景

    • Dockerで環境構築してpythonコードを書く際,画像の結果を見るのにjupyter notebookが楽

 

    • opticspyというモジュールを使ったシミュレーションをしようとした時,pip installが前提となっていた

https://github.com/Sterncat/opticspy

Jupyterは普段anaconda環境下で使っているので,どうしたら良いか調べながら対処した

Dockerfile

FROM continuumio/anaconda3:latest


RUN apt-get update && apt-get upgrade -y \
 && apt-get install -y \
    git \
    make \
    build-essential \
    libssl-dev \
    zlib1g-dev \
    libbz2-dev \
    libreadline-dev \
    libsqlite3-dev \
    wget \
    curl \
    llvm \
    libncurses5-dev \
    libncursesw5-dev \
    xz-utils \
    tk-dev \
    libffi-dev \
    liblzma-dev \
    vim

RUN conda create -n p37 python=3.7 pip

実行コード

$ docker run -it -p 8881:8881 -v /hogehoge/:/mnt/ --name pip_in_conda pip_in_conda:1.0
$ source activate p37
$ pip install jupyter
$ pip install environment_kernels
$ jupyter notebook --generate-config
$ vim /root/.jupyter/jupyter_notebook_config.py

vimで追記する内容は以下の通り

c.NotebookApp.kernel_spec_manager_class='environment_kernels.EnvironmentKernelSpecManager'
c.EnvironmentKernelSpecManager.env_dirs=['/opt/conda/envs/']
$ pip install cffi
$ pip install numpy
$ pip install git+git://github.com/Sterncat/opticspy.git@master
$ pip install pyyaml
$ jupyter notebook --port 8881 --ip=0.0.0.0 --allow-root

opticspyのサンプルコード実行の様子

screencapture-127-0-0-1-8881-notebooks-mnt-05-lens-design-opticspy-sample-double-gauss-sample01-ipynb-2020-01-19-15_23_23.png

广告
将在 10 秒后关闭
bannerAds