Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/miolab/jupyterlab_elixir
JupyterLab + Poetry + Docker環境で、Elixirを実行する(「fukuoka.ex Elixir/Phoenix Advent Calendar 2020」投稿記事サポート用リポジトリ)
https://github.com/miolab/jupyterlab_elixir
circleci docker elixir jupyterlab poetry python
Last synced: 8 days ago
JSON representation
JupyterLab + Poetry + Docker環境で、Elixirを実行する(「fukuoka.ex Elixir/Phoenix Advent Calendar 2020」投稿記事サポート用リポジトリ)
- Host: GitHub
- URL: https://github.com/miolab/jupyterlab_elixir
- Owner: miolab
- Created: 2020-10-22T04:43:12.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2020-12-23T22:27:47.000Z (about 4 years ago)
- Last Synced: 2024-10-30T11:09:09.242Z (about 2 months ago)
- Topics: circleci, docker, elixir, jupyterlab, poetry, python
- Language: Jupyter Notebook
- Homepage:
- Size: 19.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# JupyterLab Elixir
[![miolab](https://circleci.com/gh/miolab/jupyterlab_elixir.svg?style=svg)](https://github.com/miolab/jupyterlab_elixir)
「fukuoka.ex Elixir/Phoenix Advent Calendar 2020」投稿記事のサポート用リポジトリ
- [JupyterLab + Poetry + Docker環境で、Elixirを実行する](https://qiita.com/im_miolab/items/01ba3987330a587bd757)
## 概要
__JupyterLab__ で、Python __以外__ の開発言語も実行できるようにする。
- 実行環境の構築は __Docker__ で行い、Pythonバージョン及びライブラリ管理は __Poetry__ で行います。
- Poetryでは仮想環境の構築はスキップします。(Dockerコンテナの構築やってるため)
- Elixirの対話型実行環境 __「IEx」__ をJupyterLabで実行します。
- JupyterカーネルのIElixirを使います。### モチベーション
- JupyterLabではコマンドの実行結果をそのままファイル形式で保存できます。
- そのため、たとえばElixirならIEx実行コマンドのコード管理にも役立てられる、ということがJupyterLabを実行するメリットのひとつです。
- また、`Boyle` により、すぐにElixirライブラリの試用が可能となります。
(mixファイルの準備とかimport hogeとかしなくてもいい)### 実行環境
- MacOS
- Docker (docker-compose)## 環境構築
- 任意のプロジェクト名でディレクトリを作ります
- ディレクトリ直下に、以下の3ファイルを用意します```terminal
.
├── Dockerfile
├── docker-compose.yml
└── pyproject.toml
```## 実行
```terminal
$ cd hogehoge(ファイルを用意したディレクトリ)$ docker-compose build
$ docker-compose up
```- コンテナが起動したら、ブラウザで [localhost:8890](http://localhost:8890) を確認します。
- Elixirカーネルを追加することができました。
- Elixirのコマンド実行もできています。
- JupyterLabでの実行結果をファイルで保存できるので便利。
### ElixirのライブラリをJupyterLabで使う
- `Boyle.install({:math, "~> 0.5.0"})` のようにコードを書くことで、ライブラリの使用が可能となります。
- [math (Hex)](https://hex.pm/packages/math)
---
### 参考
- GitHub
- [Jupyter kernels](https://github.com/jupyter/jupyter/wiki/Jupyter-kernels)
- [IElixir](https://github.com/pprzetacznik/IElixir)
- [example Using](https://github.com/pprzetacznik/IElixir/blob/master/resources/example.ipynb)
- [ZeroMQ header files missing](https://github.com/pprzetacznik/IElixir#zeromq-header-files-missing)
```terminal
===> /IElixir/deps/erlzmq/c_src/erlzmq_nif.c:24:10: fatal error: zmq.h: No such file or directory
#include "zmq.h"
^~~~~~~
compilation terminated.
```- [Boyle usage](https://github.com/pprzetacznik/IElixir/blob/master/resources/boyle%20example.ipynb)
- https://github.com/pprzetacznik/IElixir/blob/master/resources/boyle%20example%20-%20matrex%20installation%20and%20usage.ipynb
- https://github.com/pprzetacznik/IElixir/blob/master/resources/inlineplot%20example%20-%20gnuplot.ipynb
- Docker
- [Python](https://hub.docker.com/_/python)