[2021w]手元 PC に実行環境を構築する方法(2021秋冬学期)

0. 必要なもの

  • ハードウエアの要件
    • 空きHDD容量5GB以上が望ましい
    • メインメモリ8GB以上が極めて望ましい
    • インターネットへ常時接続されていること.(接続された状態で作業する)
  • OSの要件
    • Windows 7以上, Windows10 64bitを推奨, … または
    • MacOSX 10.8以上, 10.13以上を推奨, … または
    • Linux など
  • CPUの要件
    • Intelプロセッサ (AMD Ryzenプロセッサを含む): これらプロセッサ向きにはJuliaのバイナリは動作保証されることになっています。
    • ARMベースのプロセッサ(Apple M1 Silicon、Microsoft SQ1/SQ2 - Microsoft Surface Pro X): これらプロセッサ向けのJulia導入は、少し苦労する可能性があります。この文の筆者は未経験です
  • 用いるユーザアカウントの要件
    • 管理者アカウント
      • アプリケーションをインストール可能な権限を持つこと
    • そのアカウント名が「半角英数字」のみで構成されること
      • 「半角文字」とは、「かな漢字変換」システムを用いずに入力できる文字とみなしてください
      • すなわち,空白,記号,漢字, かな, ハングルなどを含んではいけない
    • 上の要件を満たすアカウントを用意していなければ,新たにアカウントを作成し,今後そのアカウントで作業せよ
  • 既定のWeb ブラウザとして、現代的な Web ブラウザが設定されていること
  • 他のソフトウエアとの競合
    • 以下の説明は、Julia と競合するソフトウエアがインストールされていないことを前提とする
      • 特に、下記で説明する PyPlot パッケージは、インストール済の Python言語の処理系と競合する可能性がある
      • Anaconda Python パッケージ (Python 3.x に限る)がインストール済の場合は、それを、Juliaが参照するようにも設定できる。3b. パッケージ設置の準備 の設定が変わる。相談してください。

注意:セキュリティ対策ソフトとの競合

  • セキュリティ対策ソフトの中には、Julia が用いるパッケージの設置を妨害するものがあります
    • Kaspersky Internet Securityは、以下の PyPlot パッケージの設置を妨害することが受講生から報告されました (2020年11月頃)
  • セキュリティ対策ソフトの機能を一時的に停止してみてください

1. Julia のダウンロード

  • Julia 言語のダウンロードのページを閲覧する。 https://julialang.org/downloads/
  • Current stable release の節に進む
    • 2021年7月14日時点の最新版は version 1.6.2 である。

JuliaBinary

2a. Julia のインストール Intel CPU機の Windows 向け

  • ダウンロードした exe ファイルをダブルクリックする
  • Install ボタンを押して,作業を進める
    • インストール先ディレクトリは、変更しない(インストール場所をメモしておくとよい) win-julia-install1

    • Installation Successfull の窓が出たら、どのメニューも選ばす Finish ボタンを押してよい win-julia-install2

  • デスクトップにできたアイコン win-julia-icon をクリックして起動できたらOK
    • 起動できない場合は、OS やウイルス対策ソフトが、ダウンロードしたアプリケーションのインストールや起動を阻止していないか確認してください。
    • 信用できる作業を行っていると信じるなら、阻止を解除してください
      • Kaspersky Security が起動を阻止して、Juliaを削除(移動) する例がありました
  • 3a. Juliaを起動する に進む

2b. Julia のインストール Intel CPU機の MacOS 向け

  • ダウンロードした dmg ファイルをダブルクリック
  • 解凍できたら,以下の画面になる

mac-julia-install

  • Julia-1.6.appApplications フォルダにドラッグする(Julia-1.6のアイコンをマウスで選択して、Applications フォルダーに重ねる)
    • この操作を行わないで起動した Juliaでパッケージをインストールすると、次回以降に起動したJuliaでパッケージが見つからない場合がある
  • LaunchPad または Application フォルダーにある Julia アイコンをクリックして起動できたらOK

    mac-julia

    • MacOS が Julia の起動を阻止する場合がある
      • 「開く」を選べば起動するが、警告が毎回出るのは煩わしいかもしれない

mac-julia-blocked

  • 「ダウンロードしたアプリケーションの起動を許可しない」ように設定している場合は、以下のように許可する
    • MacOSの 「システム環境設定」> 「セキュリティとプライバシー」> [一般] に飛ぶ
    • 左下の🔒「鍵マーク」を解除🔓 して、「確認済みの開発元からのアプリケーションを許可」ボタンを選択する

mac-security

  • 上とは異なる理由で起動できない場合は、OS やウイルス対策ソフトが、ダウンロードしたアプリケーションのインストールや起動を阻止していないか確認してください。
    • 信用できる作業を行っていると信じるなら、阻止を解除してください
  • ターミナルから Juliaを起動したい場合は、アプリケーション内の Juliaのシンボリックリンクを、例えば /usr/local/bin/ に作っておくとよい。
    • ターミナルを起動して、%プロンプトに対して、以下の1行を打ち込む([ENTER] は「 ENTER キーを押すこと」を意味する)。パスワードを求められる

      sudo ln -s /Applications/Julia-1.6.app/Contents/Resources/julia/bin/julia /usr/local/bin/julia-16 [ENTER]

    • /usr/local/bin/julia-16 で起動できるようになります
  • 3a. Juliaを起動する に進む

2c. Julia のインストール ARM機向け

(2021/9/17追記)

  • 筆者には、以下の経験がなく動作保証ができません
  • Native binaries
    • Apple M1 Silicon機 (MacOSX 11.4 - Big Sur以上)向けに (Julia 1.6の次期バージョン検討用の) Julia v1.7.0-rcバイナリが公開されています → Upcoming release: v1.7.0-rc1 (September 12, 2021), macOS ARM (M-series Processor)
  • Emulation of Intel CPU
    • Apple M1 Silicon機に Rosetta (または Rosetta 2) が入ると、Intel mac向けJuliaバイナリを実行できます。参考 → https://juliaifrank.com/julialang-on-m1-chip/
  • Emulation under Linux
    • ARMベースの Windows 10機 (Microsoft Surface Pro X)上に、まずWSLを導入します (参考→ https://www.youtube.com/watch?v=Nm8EM8d8xto)。WSL (Windows Subsystem for Linux)は、Windows 10 上で動作するLinux です。WSL上で、Generic Linux on ARM (AArch64) 向けの Juliaバイナリを導入できるでしょう。
    • M1 Mac用のParallels という(有償)ソフト上で、Linuxを実行できます。その Linux上で Generic Linux on ARM (AArch64) 向けの Juliaバイナリを使えるでしょう。
  • Self-build
  • 3a. Juliaを起動する に進む

3a. Juliaを起動する

  • ファイル・エクスプローラ(Windows) またはFinder(Mac)を起動する
  • 自分のホームディレクトリ(フォルダー)に移動する.
    • アカウントが hs なら,ホームディレクトリは,
      • Windows なら c:¥users¥hs
        • 円マーク ¥ の代わりに、バックスラッシュ \ で表示される場合がある
      • MacOSX なら /Users/hs
  • その下に .julia という名前のディレクトリ(フォルダー) があれば,それを削除する

  • Julia を起動する
  • プロンプト julia> は,命令を待ち受ける状態である(コマンド・モード)
  • 1+1 を打ち込んだ後 ENTERキー を押す。計算結果 2 が表示される。

CONDA_JL_VERSION

3b. パッケージ設置の準備

  • 次の文を打ち込む。全て半角文字である。大文字・小文字を区別する。以後 [ENTER] は「 ENTER キーを押すこと」を意味する。(Webブラウザ上に表示されたテキストをcopy&pasteしてはいけません(貼り付けたときに文字化けします)。キーボードから打ち込んでください。)

    ENV["CONDA_JL_VERSION"]=3 [ENTER]

  • 次の文を打ち込む。全て半角文字である。大文字・小文字は区別される。

    ENV["MPL_BACKEND"]="TkAgg" [ENTER]

3c. Unitfulパッケージのインストール

Uniftul

  • ] キーを押すと,プロンプトが pkg> に変わる(パッケージ・モードに入る)
  • 次の文を打ち込む。

    add Unitful [ENTER]

  • 新しくパッケージを入れる場合には、たくさんのメッセージが出る。赤字のテキストはエラーメッセージである。
    • 比較的親切なメッセージが表示される
      • 以下のメッセージは、パッケージが見つからないことを意味する。add の後に正しいパッケージ名をタイプする。

        ERROR: The following package names could not be resolved:

      • 以下のメッセージは、インターネット接続が切断された可能性を示唆する

        Warning: Some registries failed to update

      • パッケージ一覧の更新中は、パッケージの追加が失敗する。この場合は、5分程度経過してから、再び試す。
  • pkg> プロンプトが出るまで待つ。
  • コントロール CTRL キーを押しながら c を押す(パッケージ・モードから抜ける)
    • 以後 [CTRL]+c は「コントロールキーを押しながら c を押すこと」を意味する
  • julia> プロンプトが出ているはず(現在コマンド・モードである)
  • 次の文を打ち込む。エラーメッセージが出ないことを確認する。

    using Unitful [ENTER]

    • 比較的親切なメッセージが表示される
      • 以下のメッセージは、上の add Unitful が失敗したことを意味する。

        Run import Pkg; Pkg.add("Unitful") to install the Unitful package.

      • 上の指示に従い import Pkg; Pkg.add("Unitful") と打ち込んでみる
  • さらに,次のように打ち込む

    1u”m” [ENTER]

  • 計算結果 1 m または 1 u"m" が返ればOK

3d. PyPlotパッケージのインストール

PyPlot

  • ] キーを押して、パッケージモードに入る。プロンプトが pkg> に変わる
  • 次の文を打ち込む。

    add PyPlot [ENTER]

    • 新しく PyPlot パッケージを導入する場合には10分以上かかる場合がある
  • pkg> プロンプトが出るまで待つ。
  • [CTRL]+c を押して、パッケージ・モードを抜ける。プロンプトは julia> に戻る
  • 次の文を打ち込む。エラーメッセージが出ないことを確認する。

    using PyPlot [ENTER]

    • 新しく PyPlot パッケージを起動する場合には10分以上かかる場合がある
  • julia> プロンプトが出るまで待つ。
    • 始めて実行する場合には数分かかる
    • エラーメッセージ(英語)が出たら、指示に従う
      • 例えば Please run Pkg.build("PyCall") というメッセージが出たら、

        Pkg.build(“PyCall”) [ENTER]

  • julia> プロンプトに対して、次のように打つ

    plot([1,3,2]) [ENTER]

  • グラフが表示されたらOK

PyPlot_plot

4a. IJuliaパッケージのインストール

  • ] キーを押してパッケージモードへ.プロンプトは pkg>
  • add IJulia [ENTER] と打ち込む.
    • 新しく IJulia パッケージを入れる場合には10分以上かかる場合がある
    • 途中で、以下のメッセージが出たら、ENTER キーを押して進める

      install Jupyter via Conda , y/n? [y]:

  • [CTRL]+c を押してコマンドモードへ.プロンプトは julia>
  • using IJulia [ENTER] と打つ
    • 新しく IJulia パッケージを起動する場合には10分以上かかる場合がある
    • 途中で、以下のメッセージが出たら、ENTER キーを押して進める

      install Jupyter via Conda , y/n? [y]:

  • プロンプト julia> が出たら notebook() [ENTER] と打つ

    start-jupyter

  • ブラウザが立ち上がるはず(次の節へ)
    • ブラウザが立ち上がらない場合は
      • 既定のブラウザが設定されていることを確認する(本ページ冒頭の「必要なもの」 > 「既定のWebブラウザ」を参照)
      • セキュリティ設定やウイルス対策ソフトがブラウザの起動を阻止してないか確認する

    start-jupyter

4b. Jupyter notebookの起動

  • ブラウザに Jupyter notebook の起動画面が表示される
  • 画面右側の New ボタンを押す.
  • Julia 1.6 を選んで起動する (Julia 1.6.2 と表示される場合もあります)
    • kernelのリストに Julia 1.6 が見つからない場合
      • Jupyter notebookを既にインストール済のPCで起こる可能性がある
      • kernel.json というファイルを適切に設定する
      • 分からない場合は相談してください

4c. Jupyter notebook上でのプロット確認

  • 起動した Notebook 上で作業する

jupyter-session1

  • セル内で命令を書く
    • 1+1 と打って、[SHIFT] キーを押しながら[ENTER] キーを打つと実行される。
      • 以後 [SHIFT]+[ENTER] は、「[SHIFT] キーを押しながら[ENTER] キーを打つ」を意味する

jupyter-session2

  • セル内に、次のように打つ

    using PyPlot [SHIFT]+[ENTER]

    • エラーメッセージ(英語)が出たら、指示に従う
      • 例えば Please run Pkg.build("PyCall") というメッセージが出たら

        import Pkg; Pkg.build(“PyCall”) [SHIFT]+[ENTER]

  • セル内で、次のように打つ

    plot([1,3,2]) [SHIFT]+[ENTER]

  • ブラウザ内にグラフが描かれれば ok

jupyter-session3

  • Jupyter notebook を終了するには
    • 右上の Logout ボタンを押す

jupyter-session3

  • 以上で構築作業は終了

5. 授業開始時の操作

  • プログラミング開始時に Jupyter notebook を起動する
    • Julia を起動
    • julia> プロンプトに対して、以下のように順に打ち込む

      using IJulia [ENTER]

      notebook() [ENTER]

    start-notebook

    • Jupyter notebook のホーム画面が表示される

    start-ijulia

  • 新しい notebook を作成する
    • 画面右側の New ボタンを押す.
    • Julia 1.6 を選ぶ
  • コードセルにプログラム片を入力し、[SHIFT]+[ENTER] キーを押すと実行される

  • たまに [File] メニューから [Save and CheckPoint] を選ぶ(保存)
    • ホームディレクトリの下に、拡張子 .ipynb のファイルが保存される

    jupyter-session3

  • Notebook名を変更する
    • Notebook を作成した直後の名前は Untitled+数字 である
    • ページ上部のNotebook名をクリックすると、新しい名前を入れるテキストボックスが表示される
      • 新しい名前を入れて Rename ボタンを押すと変更される
        rename-notebook
  • Notebook ファイルをローカルPCに保存する
    • [File] メニューから [Download As]
    • そのサブメニューから [Notebook (.ipynb)]
  • notebook の編集を終える
    • [File] メニューから [Download As]
    • そのサブメニューから [Notebook (.ipynb)]
  • Jupyter notebook を終了するには
    • 右上の Logout ボタンを押す

終わり