Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

jupyter labのパスが指定できません。

jupyter labのパスが指定できません。

image.png

どうか、ご教授ください。

0 likes

4Answer

Comments

  1. @suiru_nakamura

    Questioner

    返信ありがとうございます!言い忘れておりました!現在、macosを使用しています。

    上記の記事は、windowsの例ではないでしょうか?
    また、dockerを使用していて、docker runコマンドでポートを指定してから、webブラウザを開いています。
    この場合、作業ディレクトリは、どこにすればいいのかなど、ご教授お願いしたいです、、

windowsの話ではありません。

これはdockerにホストのvolumeをマウントする方法の話になってきますね。

jupyter labはどうやって起動しましたか?
docker-compose.ymldocker runDockerfileなどあれば見せてください。

もしくは以下でvolumeを追うことができます。

docker inspect <コンテナID>

詳細はそれぞれのdockerイメージの配布元のDockerfileを読めばわかります。

docker run --rm \
 -p 10000:8888 \
 -e JUPYTER_ENABLE_LAB=yes \
 -v "$PWD":/home/jovyan/work \
 jupyter/datascience-notebook

とかであれば、docker run をした時のカレントディレクトリに my-project~.jsonを置けばよいかと思います。

0Like

Comments

  1. @suiru_nakamura

    Questioner

    docker-composeは使用せずに、docker buildと runコマンドで、dokcerコンテナを起動させ、そこのポート内で、jupyter labを起動させました。
  2. 原因は、ホストのMyDocker/my-proj~.json がdockerコンテナ内からアクセスできないことのようです。

    docker run 時に MyDockerフォルダにcdで移動しておいて、

    ```sh
    docker run -it \
    -v $(pwd):/workspace

    ```

    のようにvolumeマウントの指定が必要です。
    もしくは、`docker cp my-proj~.json コンテナid:/workspace/my-proj~.json`で転送も可能です。

    参考

    * https://docs.docker.com/storage/volumes/
    * https://qiita.com/yuki_ycino/items/b94ae2bf7d78685cd6f5#%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E6%B0%B8%E7%B6%9A%E5%8C%96
  3. @suiru_nakamura

    Questioner

    あー、docker runをする時に、作業ディレクトリの中にmy-proj~.jsonが存在している必要があるんですね。了解しました。もう一回、docker buildから、コンテナを作る必要がありそうですね。。
  4. pip install gspread

    していないのではないでしょうか?
  5. > docker buildから、コンテナを作る必要がありそうですね

    dockerイメージは
    pip install gpread
    を追加したものを作ると良いでしょう。
  6. @suiru_nakamura

    Questioner

    そうでした、、pipでインストールするのを忘れてました。

    docker exec -it コマンドでコンテナ内に追加でインストールします。
  7. あともうちょいで動きますね!
  8. docker exec -it でインストールする方法では認識しないようなので
    dockerイメージのbuildし直しから必要なようですね。

    Dockerfileの RUN に以下を追加がよいでしょう。

    RUN pip install gpread
    RUN pip install oauth2client
  9. @suiru_nakamura

    Questioner

    返信ありがとうございます!そうなんですね!了解しました、、
  10. @suiru_nakamura

    Questioner

    dockerfileに記述する際は、gpreadなんですか?
    gspreadじゃなくて?
  11. おっと、gspread の書き間違えでした。

    pipが入っていないのは以下が必要です。
    RUN apt install -y python3-pip

    また、DockerfileのENVの前の行あたりに書くとよいでしょう。

    一度 Dockerfile 全体を画像ではなく、ここにコピペしていただけたら楽です。
  12. @suiru_nakamura

    Questioner

    返信ありがとうございます!了解しました!これからそうします!
  13. @suiru_nakamura

    Questioner

    FROM ubuntu:latest

    RUN pip install gspread
    RUN pip install oauth2client
    RUN apt-get update && apt-get install -y sudo wget vim curl gawk make gcc

    RUN wget https://repo.continuum.io/archive/Anaconda3-2019.03-Linux-x86_64.sh && \
    sh Anaconda3-2019.03-Linux-x86_64.sh -b && \
    rm -f Anaconda3-2019.03-Linux-x86_64.sh && \
    sudo curl -sL https://deb.nodesource.com/setup_10.x | sudo bash - && \
    sudo apt-get install -y nodejs
    RUN apt install -y python3-pip
    RUN pip install gspread
    RUN pip install oauth2client
    ENV PATH $PATH:/root/anaconda3/bin

    RUN mkdir /workspace

    CMD ["jupyter-lab", "--ip=0.0.0.0","--port=8888" ,"--no-browser", "--allow-root", "--LabApp.token=''"]

    上記のように記述してみました。どうでしょうか?
    何か、間違っていたらご指摘ください。
    いったんこれで、ビルドしてみます。
  14. @suiru_nakamura

    Questioner

    やはり、下記のような表記になってしまいます!エラー文をみてみると、gspreadのインストールで問題が発生しているようです。これは、どんな解決法がありそうですかね、、

    (base) rooter:MyDocker apple$ docker build -t jlab:latest /Users/apple/create/MyDocker
    Sending build context to Docker daemon 23.04kB
    Step 1/11 : FROM ubuntu:latest
    latest: Pulling from library/ubuntu
    54ee1f796a1e: Pull complete
    f7bfea53ad12: Pull complete
    46d371e02073: Pull complete
    b66c17bbf772: Pull complete
    Digest: sha256:31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
    Status: Downloaded newer image for ubuntu:latest
    ---> 4e2eef94cd6b
    Step 2/11 : RUN pip install gspread
    ---> Running in 5807cba2b4c1
    /bin/sh: 1: pip: not found
    The command '/bin/sh -c pip install gspread' returned a non-zero code: 127
  15. pipを実行する前に、ENVでPATHを通す必要がありました。
  16. @suiru_nakamura

    Questioner

    本当にありがとうございます!このdockerfileの記述で、dokcerコンテナを作成すれば、いい感じですかね!
    ありがとうございます!
  17. はい、確認してみてください
  18. @suiru_nakamura

    Questioner

    本当に、dockerfileまで作ってもらっちゃってすみません。。
    dokcerについて知見を増やします、、
  19. @suiru_nakamura

    Questioner

    jupyter labを開いた後は、また、新しくpythonファイルを作成した方がいいですか?
    前のエラー文が発生していたファイルで実行してみてもまた、エラー文の表示から、変わらな以上たいです。
  20. 1. dockerコンテナを停止
    2. dockerコンテナを削除
    3. 新しいDockerfileでdockerイメージを作り直し
    4. 3で作ったイメージを指定してdockerコンテナを起動

    この4の指定が間違っているのかと思います。
    「docker ps -a」 でどのdockerイメージで起動しているのか再度ご確認ください。

    Jupyter Labでは、「Console」か「Notebook」で
    「import gspread」だけ入力し、Shift押しながらEnterキーを押すと行ごとに実行できます。
  21. @suiru_nakamura

    Questioner

    返信ありがとうございます!了解しました。再度確認してみます。
    ちなみに、コードを再度入力してみました。
    下記のコードは、前に作成したpython_sheets.ipynbというファイルで行っています。
    import gspread
    ---------------------------------------------------------------------------
    ModuleNotFoundError Traceback (most recent call last)
    <ipython-input-35-ee81b5aaaf88> in <module>
    ----> 1 import gspread

    ModuleNotFoundError: No module named 'gspread'

こちらでは問題なくimportできます。

Consoleで実行する例。
import失敗する場合はエラーが出て、
成功する場合はエラーが出ない

aa.png

0Like

Comments

  1. @suiru_nakamura

    Questioner

    notebookで実行しています。consoleの方がいいのでしょうか、、
  2. @suiru_nakamura

    Questioner

    写真の挿入ありがとうございます!わかりやすいです。

notebookでもconsoleでもどっちでも同じ結果です。
dockerイメージの指定が間違っていると思います。

aa.png

0Like

Comments

  1. @suiru_nakamura

    Questioner

    わかりました!ありがとうございます!
  2. @suiru_nakamura

    Questioner

    https://gyazo.com/2f131ee7608d708ef21fedf266aea4b4
    https://gyazo.com/a8f00f5bf17a64c4559e3e89dfef4ddc
    現在、この状態です、、(画像の挿入ができずに申し訳ありません。)
    ターミナルの状態を下記にペーストしておきます。

    Shutdown this notebook server (y/[n])? yes
    [C 23:26:06.598 LabApp] Shutdown confirmed
    [I 23:26:06.791 LabApp] Shutting down 0 kernels
    (base) rooter:MyDocker apple$ docker images
    REPOSITORY TAG IMAGE ID CREATED SIZE
    jupyter latest b0ef8fe232cc 16 hours ago 3.77GB
    ubuntu 20.04 4e2eef94cd6b 2 weeks ago 73.9MB
    (base) rooter:MyDocker apple$ docker ps -a
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    (base) rooter:MyDocker apple$ docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    (base) rooter:MyDocker apple$ docker run -it --rm -p 8888:8888 -v /Users/apple/create/MyDocker:/workspace b0ef8fe232cc
    [I 23:28:01.942 LabApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
    [W 23:28:03.656 LabApp] All authentication is disabled. Anyone who can connect to this server will be able to run code.
    [I 23:28:03.676 LabApp] JupyterLab extension loaded from /root/anaconda3/lib/python3.7/site-packages/jupyterlab
    [I 23:28:03.677 LabApp] JupyterLab application directory is /root/anaconda3/share/jupyter/lab
    [W 23:28:03.680 LabApp] JupyterLab server extension not enabled, manually loading...
    [I 23:28:03.684 LabApp] JupyterLab extension loaded from /root/anaconda3/lib/python3.7/site-packages/jupyterlab
    [I 23:28:03.685 LabApp] JupyterLab application directory is /root/anaconda3/share/jupyter/lab
    [I 23:28:03.686 LabApp] Serving notebooks from local directory: /workspace
    [I 23:28:03.687 LabApp] The Jupyter Notebook is running at:
    [I 23:28:03.688 LabApp] http://(9b332d1112b5 or 127.0.0.1):8888/
    [I 23:28:03.688 LabApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

  3. @suiru_nakamura

    Questioner

    おそらく、imageのビルドも怪しいので、imageのビルドからやってみます!
  4. @suiru_nakamura

    Questioner

    (base) rooter:create apple$ docker run 8888:8888 -v /Users/apple/create/MyDocker:MyDocker -name jupyter c5babbb344cf2
    Unable to find image '8888:8888' locally
    docker: Error response from daemon: pull access denied for 8888, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
    See 'docker run --help'.
    (base) rooter:create apple$ docker images
    REPOSITORY TAG IMAGE ID CREATED SIZE
    <none> <none> 5babbb344cf2 10 minutes ago 293MB
    ubuntu 20.04 4e2eef94cd6b 2 weeks ago 73.9MB

    おそらく、docker imageを作成したところ、リポジトリ名とタグ名がなくて、それに対してエラーが起こってしまっています。
    この、タグ名とリポジトリ名はdockerfileでの指定に必須なのではないのでしょうか?
  5. docker run時に -p が抜けています。また -v の指定の仕方にも誤りがあります。

    docker run -it -name jupyter -p 8888:8888 -v /Users/apple/create/MyDocker:/workspace c5babbb344cf2
  6. @suiru_nakamura

    Questioner

    ありがとうございます!
    実行してみます!

Your answer might help someone💌