PythonからJuliaに乗り換えたい

数値計算のために長らくPythonを使っていたのですが、魔がさしたのかJuliaを使おうと思い立ちました。

Juliaの環境構築に加えて、Jupyterでも使えるようにしていきます。

（実行環境はmacOS Intelです）

# 環境構築
パッケージは以下のリンクにあります。

https://julialang.org/downloads/

自分の環境に合ったパッケージをダウンロード。私の場合は **macOS x86 (Intel or Rosetta)** でした。

![スクリーンショット 2022-08-31 12.34.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2611822/09159005-7884-9514-243c-b4508f6c698b.png)

Julia.appをApplicationに移して、appを開きます。すると

```/Applications/Julia-{version}.app/Contents/Resources/julia/bin/julia```

がターミナルで実行されます。可愛らしいロゴが表示されるはず。

この画面から、対話的にjuliaを実行することができます。

![スクリーンショット 2022-08-31 12.37.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2611822/b816b5c3-e420-350e-542e-c5ae7bbb838d.png)

ターミナルで`julia`を叩いたら起動できるようにしたいので、

`.zshrc`もしくは`.bashrc`に以下を記載してパスを通します。

```.zshrc
export PATH="/Applications/Julia-{version}.app/Contents/Resources/julia/bin:$PATH"
```

これでターミナルから呼び出せる（バージョン管理は再考する必要がありますね...）。

`where julia`をするとちゃんと設定できている。ヨシ！

```shell
% where julia
> /Applications/Julia-{version}.app/Contents/Resources/julia/bin/julia
```

# jupyterで使えるようにしたい!

pythonで数値計算をしていた頃は`jupyter lab`を使って開発していました。

juliaでもコードブロックごとに実行できる環境が欲しい！と思ったので、jupyterでjuliaを使えるようにします。

jupyter labの概要や導入方法はこちらの記事をご覧ください。

https://qiita.com/taka4sato/items/378782763dec3dacb1ee

さて`julia`を起動して、juliaモードからパッケージモードに切り替えます。

juliaモードでは`julia>`と表示されていますが、`]`を打つとモードが切り替わって、`(@v1.8) pkg>`と表示されます。

（juliaモードに戻るときは`Ctrl + h`）

![スクリーンショット 2022-08-31 12.45.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2611822/1c469e97-f2f5-c8a2-1300-c5154134a47e.png)

jupyterでjuliaを使えるようにするために`add IJulia`をします。

他にも色々インストールされていきます（Condaとか）


```shell
(@v1.8) pkg> add IJulia
    Updating registry at `~/.julia/registries/General.toml`
   Resolving package versions...
   Installed SoftGlobalScope ─ v1.1.0
   Installed ZeroMQ_jll ────── v4.3.4+0
   Installed Conda ─────────── v1.7.0
   Installed libsodium_jll ─── v1.0.20+0
   Installed VersionParsing ── v1.3.0
   Installed ZMQ ───────────── v1.2.1
   Installed IJulia ────────── v1.23.3
  Downloaded artifact: libsodium
  Downloaded artifact: ZeroMQ
    Updating `~/.julia/environments/v1.8/Project.toml`
  [7073ff75] + IJulia v1.23.3
    Updating `~/.julia/environments/v1.8/Manifest.toml`
  [8f4d0f93] + Conda v1.7.0
  [7073ff75] + IJulia v1.23.3
  [b85f4697] + SoftGlobalScope v1.1.0
  [81def892] + VersionParsing v1.3.0
  [c2297ded] + ZMQ v1.2.1
  [8f1865be] + ZeroMQ_jll v4.3.4+0
  [a9144af2] + libsodium_jll v1.0.20+0
    Building Conda ─→ `~/.julia/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/6e47d11ea2776bc5627421d59cdcc1296c058071/build.log`
    Building IJulia → `~/.julia/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/98ab633acb0fe071b671f6c1785c46cd70bb86bd/build.log`
Precompiling project...
  5 dependencies successfully precompiled in 5 seconds. 143 already precompile
```

`IJulia`がインストールできたら、jupyterでjuliaが使えるようになっているはずです。

Launcherの画面に`Julia 1.8.0`がでてきました。ヨシ！

![スクリーンショット 2022-08-31 12.51.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2611822/f9dcb03d-58b3-807b-6661-fb1dbeb2f802.png)

# 終わりに
今回はjuliaのパッケージを公式サイトから直接取ってきましたが、
homebrewを使う方法もあるようです。

```shell
brew install --cask julia
```

そちらについてはぼちぼち確認しようかなと思っています。