5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonAdvent Calendar 2024

Day 17

Pythonx: Python Interpreter in Elixir

Last updated at Posted at 2024-12-29

PythonxはElixir上で使えるPython処理系です.Elixirから気軽にPython資産を使えることが期待できます.

Elixirコミュニティ向けには既に, @RyoWakabayashi さんの手により,下記の記事でPythonxは紹介されています.

今回はPythonコミュニティ向けに,より基礎的なところから記述していきたいと思います.

まず,Livebookのインストール方法からです.Livebookは,Pythonで言うところのJupyterLabに相当するElixirの環境です.

Livebookホームページ

まずこのページの"Install Livebook"ボタンを押します.

Livebookインストールボタン

環境に合わせてお好きなボタンを押します.今回の説明ではMacのローカルインストールについて説明しますので,"Mac (Universal)"を選択することにします.

ダウンロード

DockのダウンロードにLivebookのimgファイルが配置されますので,クリックして開きます.

LivebookInstall.img

アプリとしてインストールするには,右のLivebookアイコンを左のApplicationフォルダにドラッグして,アプリケーションからLivebookを開きます.お試しで開きたいときには,Livebookアイコンをダブルクリックします.

Livebook立ち上げ画面

Livebookのホームページです.Jupyterで見慣れたような画面ですね.一応一通り簡単に説明します.

  • "+ New notebook"をクリックすると,新しいノートを開くことができます.
  • ノートを一旦開くと"Running Session"のところに現れるので,そちらで再開することができます.
  • 右下の"Shut Down"を押すと,Livebookを完全に閉じて終了することができます.
  • 残りのボタンは,いろいろ押して試してみてください.

Livebookアイコン

メニューバーの右上の状況メニューにあるこのアイコンをクリックすると次のようなメニューが出てきますので,Livebookのホームページを間違えて閉じてしまったとしても,復活させることができます.

スクリーンショット 2024-12-29 18.20.37.png

このメニューの"Open"を押せば,Livebookのホームページを開くことができます.

さて,下記に戻ります.

Livebook立ち上げ画面

"+ New notebook"を押してみましょう.

Untitled notebook

最初に"Notebook dependencies and setup"を押します.

Notebook dependencies and setup

この黒い画面に次のように打ち込みます.

Mix.install([:pythonx, :kino])

Mix.install

"Reconnect and setup"を押します.

Mix.install OK画面

しばらくして,このように :ok が出ればセットアップ完了です.

Section

次にこの"Section"の黒い部分に次のように打ち込みます.

alias Pythonx.C
alias Pythonx.C.PyDict
alias Pythonx.C.PyErr
alias Pythonx.C.PyFloat
alias Pythonx.C.PyList
alias Pythonx.C.PyLong
alias Pythonx.C.PyObject
alias Pythonx.C.PyRun
alias Pythonx.C.PyTuple
alias Pythonx.C.PyUnicode

alias

"Evaluate"を押します.

Evaluated alias

Elixirアイコン

下の方にカーソルを持っていくと,次の3つのアイコンが登場します.

  • "+ Elixir"
  • "+ Block"
  • "+ Smart"

"+ Elixir"を押します.

+ Elixir 押下

こんな感じで,新しい入力画面が出てきます.

この要領で,次のように打ち込んで,都度,"Evaluate"ボタンを押していきます.各コードの説明は,Elixir Livebook で Python コードを実行する【Pythonx】をお読みください.

Pythonx.initialize_once()

なお,このコードの説明

内部的には NIF をロードしています

で出てくる"NIF"というのは,Native Implemented Functionの略で,要はElixirからC等のネイティブコードを呼び出すFFI(Foreign function interface)のことです.

globals = PyDict.new()
locals = PyDict.new()

このコード以降を次々を打ち込んで,試してみてください!

ちなみに私の環境だと,下記のみうまく動きませんでした.環境設定の方法について工夫が必要そうでした.

P.S. Issue 書きました.

5
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?