初めてのJuliaとインストール (Windows & Linux)

## :tulip: この記事の目的

本記事では、統計や科学計算向けとして人気急上昇中のプログラム言語、**Julia(ジュリア)**について、その初歩やインストール、使い方などを説明します。

※当記事は執筆時点(2020/09/14)現在の情報です。情報は常に更新されますので、最新の情報を確認して下さい。


## :tulip: Juliaってどんなプログラム言語?

**Julia**は**ジュリア**と読みます。マサチューセッツ工科大学のグループにより開発された新しいプログラム言語で、人工知能やデータサイエンス、科学計算分野で注目を集めています。

Juliaの特徴は「**コードが簡潔で高水準な記述ができる**」「**プログラムの実行速度が速い**」ことです。また「**Pythonのように書けて、C言語のように動く**」とも表現されます。

Juliaはインストールが簡単で、**Windows/macOS/Linux**などの幅広いOSをサポートしています。
また、動作形態としては、対話型実行環境**REPL**の他、**拡張子.jl**のファイル実行形式、**Jupyter Notebook**形式などがあります。

さらなるJuliaについての詳細は、公式ページまたは日本語の公式ドキュメントをご参照下さい。

:paperclip: Julia - 公式ページ
https://julialang.org/

:paperclip: Julia - 日本語公式ドキュメント
https://julia-doc-ja.readthedocs.io/ja/latest/index.html
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/35dd81d5-c072-f590-cac4-731b89b6bb26.png)

## :tulip: Juliaのインストール

#### Windowsの場合

Windowsへインストールを行います。
今回インストールを行った環境は以下です。

　・Windows 10 Home 64bit

##### ①Juliaインストーラをダウンロードする

Julia公式サイトからWindows用のインストーラをダウンロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/ad5f5426-2e1e-0283-b8c9-a8157f14f528.png)
##### ②インストーラを実行する

ダウンロードしたインストーラを実行します。
![001.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/f4de1e07-dd45-9923-46de-23224a01147f.jpeg)
![001.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/20179c90-add6-991c-50a9-4b3cce93bd6d.jpeg)
![001.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/4e272ef8-9dce-db72-fccd-0627d3d08221.jpeg)
![001.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/9596a0cf-e856-ad11-614b-4e1407a4e0ba.jpeg)
以上でインストールは完了です。

インストール後、インストールしたフォルダのパスなどを環境変数に設定して下さい。
(例)
　JULIA_PATH="C:\(Juliaインストールフォルダ)"
　PATH=%JULIA_PATH%\bin;%PATH%


#### Linuxの場合

Linuxへインストールを行います。
今回インストールを行った環境は以下です。

　・Ubuntu Server 18.04 LTS 64bit


##### ①Juliaインストーラ(実行ファイル)をダウンロードする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/1e5a02be-cadd-c757-e242-e0f56898e17e.png)
ダウンロードは上記URLをwgetコマンドで取得します。

`wget https://julialang-s3.julialang.org/bin/linux/x64/1.5/julia-1.5.1-linux-x86_64.tar.gz`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/ca33c48c-ef3d-86ac-8d24-77beaf261ae7.png)
↓ダウンロードが実行されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/b88ba680-83db-db43-14c2-cabb7f7e5b6b.png)
　※**Raspberry PI3の場合**
　　以下をダウンロードしてください。これ以降のバージョンは使用できません。
　　v1.0.5 (Sep 9, 2019)
　　Generic Linux on ARM: 32-bit (ARMv7-a hard float)

##### ②インストーラを解凍する

gunzip及びtarコマンドで解凍したあと、解凍したフォルダ内のjuliaファイルに対してリンクを作成します。

`gunzip julia-1.5.1-linux-x86_64.tar.gz`
`tar -xvf julia-1.5.1-linux-x86_64.tar`
`sudo ln -s /home/ubuntu/julia-1.5.1/bin/julia /usr/local/bin/julia`

以下のコマンドでjuliaのバージョンが表示されればインストール完了です。

`julia --version`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/340d6d97-3194-93e5-520d-3598746e2a07.png)


## :tulip: Juliaを実行する

#### Windowsの場合

##### ①対話型実行環境REPLで実行する

Juliaのショートカットを実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/e5470e07-903d-491d-fa63-e177d8fedc0e.png)
以下のようにJuliaのプロンプト画面が起動しますので、ここにコマンドを入力して処理を実行させます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/6f8cfa67-8948-ba18-dc3f-80a6a924713b.png)
試しに、1+1を計算してみます。`1+1`を入力し、Enterを押下します。
![001.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/558f698d-36ef-2640-41d3-6087947dd755.jpeg)
また、`ans`を実行すると直近の評価結果を表示できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/e458600a-cbff-268a-590c-89e0d8bf77df.png)

対話型実行環境では、**ヘルプモード**が利用できます。
「?」キーを入力するとプロンプト表示が **help?>** となり、ヘルプモードに移ります。
調べたいコマンドのヘルプを表示することができます。

↓(例)forコマンドのヘルプを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/4fbdecd9-fc88-36b7-a24e-f8a2ba875b8c.png)
ヘルプモードを解除するには、「Backspace」キーを押下します。

対話型実行環境を終了するには「Ctrl + D」キーを入力するか、`exit()`と入力しEnterを押下します。

##### ②ファイル実行形式で実行する

テキストファイルに1+1を記入して、拡張子を**.jl**(英小文字のジェー・エル)として保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/9279f672-641d-a5ce-2c37-2f6d59791f6b.png)
.jlファイルを実行します。
`julia test.jl`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/8d881f71-8cdd-af6c-bce7-3f298d89bf40.png)

##### ③Jupyter Notebookで実行する

JuliaをJupyter Notebookで実行することができます。
実行するには、まずパッケージ「IJulia.jl」(アイ・ジュリア)をインストールする必要があります。

対話型実行環境で角カッコ文字の ] を押下して**パッケージモード**にします。
`add IJulia`と入力してパッケージをインストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/060e84c1-9ecc-2ec1-8fa9-ffb74e894306.png)
インストールが終了したら、「Backspace」キーを押下してパッケージモードを解除して下さい。

　※**パッケージ一覧の取得**
　インストールしたパッケージの一覧を取得する場合は、「status」と入力すると取得できます。

Jupyter Notebookを起動します。
以下のようにコマンドを実行するとJupyter Notebookが起動します。
`using IJulia`
`notebook()`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/7c425609-4f84-15ce-1093-2f61ddfbdb07.png)
上記の確認コマンドでは[y]を入力して下さい。

以下のようにJupyter Notebookが起動すればOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/7e21dc4e-7ae3-9127-5cb5-6fe61ab2b317.png)

#### Linuxの場合

##### ①対話型実行環境REPLで実行する

`julia`コマンドを実行すると、以下のように対話型実行環境が起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/d695980d-7d95-8b41-ce3c-8dd400fd0d36.png)

試しに、1+1を計算してみます。`1+1`を入力し、Enterを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/a74db194-6bd9-21eb-c4fd-edde16bbb945.png)
また、`ans`を実行すると直近の評価結果を表示できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/44e56521-b847-9bb9-2b45-0e8b11a64f3e.png)

対話型実行環境では、**ヘルプモード**が利用できます。
「?」キーを入力するとプロンプト表示が **help?>** となり、ヘルプモードに移ります。
調べたいコマンドのヘルプを表示することができます。

↓(例)forコマンドのヘルプを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/cfa14f20-5cff-280f-f8b7-da271da489cb.png)
ヘルプモードを解除するには、「Backspace」キーを押下します。

対話型実行環境を終了するには「Ctrl + D」キーを入力するか、`exit()`と入力しEnterを押下します。

##### ②ファイル実行形式で実行する

テキストファイルに1+1を記入して、拡張子を**.jl**(英小文字のジェー・エル)として保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/147354a1-a2ad-6128-2992-a2da589db0f6.png)
.jlファイルを実行します。
`julia test.jl`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/a16b311e-e54d-2ff9-1e69-b23676bcfda4.png)


##### ③Jupyter Notebookで実行する

JuliaをJupyter Notebookで実行することができます。
実行するには、まずパッケージ「IJulia.jl」(アイ・ジュリア)をインストールする必要があります。

対話型実行環境で角カッコ文字の ] を押下して**パッケージモード**にします。
`add IJulia`と入力してパッケージをインストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/a5284e2d-f20d-8db8-c37b-58f06eef0b44.png)
インストールが終了したら、「Backspace」キーを押下してパッケージモードを解除して下さい。

　※**パッケージ一覧の取得**
　インストールしたパッケージの一覧を取得する場合は、「status」と入力すると取得できます。

Jupyter Notebookを起動します。
以下のようにコマンドを実行するとJupyter Notebookが起動します。
`using IJulia`
`notebook()`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/e70272b3-f0f6-f873-8414-47cb51f42aea.png)
上記の確認コマンドでは[y]を入力して下さい。

以下のようにJupyter Notebookが起動すればOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/7e21dc4e-7ae3-9127-5cb5-6fe61ab2b317.png)

## :tulip: トラブルシューティング

#### Jupyter Notebookを外から起動する場合(外部アクセス等)

基本的にJupyter Notebookはローカル環境(localhost)向けに起動しますが、ネットワーク上の他ノードや、クラウド環境などによるインターネット経由でアクセスしたい場合は、次のように設定を行って下さい。

##### ①設定ファイルを作成する

上記手順でJupyter Notebookをインストールすると、基本的にはホームフォルダ配下に隠しフォルダ「.julia」が作成されます。
このフォルダ内に「bin/jupyter」の実行ファイルがあるので、そのパスを確認して下さい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/da7c1513-6313-72a8-c7a9-e7e3a0dbe7da.png)
以下のコマンドで設定ファイルを作成します。
`.julia/conda/3/bin/jupyter notebook --generate-config`

.jupyterフォルダ配下に設定ファイル「jupyter_notebook_config.py」が作成されます。


##### ②設定ファイルを修正する

作成された設定ファイルを開きます。
`vi .jupyter/jupyter_notebook_config.py`

外部アクセスを許可するには、**c.NotebookApp.ip**の設定値を**'0.0.0.0'**にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399135/b147b6d7-ca25-5e31-2105-1901d17de87a.png)

また、Jupyter Notebookにアクセスする時にTokenやパスワードを解除するには、以下を設定して下さい。

　**c.NotebookApp.password = ''**
　**c.NotebookApp.token = ''**


#### Jupyter Notebookが起動しない

Jupyter Notebookを使用する場合は、version 3.0以降のIPythonがインストールされている必要があります。さらに、jsonschema, Jinja2, Tornado, and pyzmqも同様です。
詳細は公式ドキュメントをご参照下さい。

:paperclip: Manual installation of IPython
https://github.com/JuliaLang/IJulia.jl/blob/master/docs/src/manual/installation.md



## :tulip: 関連情報

:paperclip: Julia - 公式ページ
https://julialang.org/

:paperclip: Julia - 日本語公式ドキュメント
https://julia-doc-ja.readthedocs.io/ja/latest/index.html




## :tulip: ご意見など

ご意見、間違い訂正などございましたらお寄せ下さい。