Git Product home page Git Product logo

jupytext_test's Introduction

Binder

JupyterLab利用プロジェクトをGitで管理する:jupytext編

記事 で試す内容のためのリポジトリ。

Pythonファイルやノートブックの内容は適当なサンプルとしてirisデータセットを読み込んでプロットするもの。 src/ 配下には読み込みやプロット用の関数などが置かれており、ノートブックからはそれらを読み込んで利用する形。

このリポジトリでは、パーセント形式のスクリプトファイルはscripts配下に、ノートブックファイルはnotebooks配下に配置するよう設定してある。 具体的な設定方法はjupytext.tomlファイルによる制御。

[formats]
"notebooks/" = "ipynb"
"scripts/" = "py:percent"

ただし notebooks/sample_notebook1.py はその設定から除外されており、 notebooks 配下にスクリプトト・ノートブック双方を保存するようになっている。

環境ごとのセットアップ方法

注意: このリポジトリにpushしないようにしてください

VSCode

この環境ではRyeを利用してパッケージを管理している

  1. このリポジトリをzipでダウンロードあるいはフォークしてクローンする
  2. リポジトリのフォルダでVSCodeを開く
  3. Dev Containers: Reopen in Container を実行する
  4. ビルド時にryeによって必要なライブラリがインストールされる

VSCodeの拡張機能congyiwu.vscode-jupytextなどはDev Containersの設定でインストール済み。 ファイルエクスプローラーでnootebooksscripts 配下にあるPythonスクリプトを右クリックし Open as a Jupyter Notebook があれば成功。

Open as a Jupyter Notebookのメニュー

この項目からファイルを開くと、JupyterLabと同じようにノートブック形式とリンクした状態でPythonスクリプトを編集できる。 注意として、ノートブックファイルを直接開いた場合はリンクした状態にならない。代わりにエクスプローラー上の右クリックメニューに Import Notebook to Script が追加される。

Import Notebook to Scriptメニュー

JupyterLabをDockerで起動

この環境ではcondaを利用したパッケージ管理を行っている。

  1. このリポジトリをzipでダウンロードあるいはフォークしてクローンする
  2. docker run -d -p 8888:8888 -v $(pwd):/home/jovyan/work jupyter/minimal-notebook:2023-10-20 などでJupyterLabのサーバーを起動する
  3. コンテナのログからトークンをコピーする
  4. localhost:8888 を開き、先程コピーしたトークンを入力してJupyter環境に入る
  5. workフォルダに移動する
  6. ランチャーからターミナルを開く
  7. conda env update --file environment.yml を実行する
  8. extensions(パズルのピースっぽいロゴ)をクリックし jupyterlab-git を検索しインストールする
  9. 同様に jupytext を検索しインストールする
  10. コンテナを再起動する

試し方

notebooks/ 配下のノートブックファイルを実行した後に保存し、コミットしようとしてみる、など。

フォルダ構成

フォルダ・ファイルの利用方法想定は以下の通り。

  • .devcontainer: VSCodeで開くときに利用するdevcontainer設定
  • notebooks/: Jupyter Notebookファイルを格納
  • src/: 再利用可能なPythonスクリプトを格納
  • data/: 生データと前処理済みデータを格納(現在空)
  • models/: 訓練済みモデルを格納(現在空)
  • reports/: 分析レポートと生成されたグラフィックを格納(現在空)
  • requirements-dev.lock: rye用の依存関係を記述したファイル
  • requirements.lock: rye用の依存関係を記述したファイル
  • environment.yml: condaの依存関係を共有するためのファイル
  • pyproject.toml: ryeの設定管理用
  • LICENSE: ライセンス情報を記述したファイル
  • README.md: プロジェクトの概要と使用方法を説明するこのドキュメント

jupytext_test's People

Contributors

ebal5 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.