LoginSignup
10
7

WindowsへJulia(IJulia)をインストールする+なるべくdownload関数を使用しない

Last updated at Posted at 2017-11-03

追記(19/10/06)
この記事は古いです。Julia v1.2がリリースされています。
ENV["BINARYPROVIDER_DOWNLOAD_ENGINE"]"curl"を設定すればインストールされているcurlを使用するようになります。(参考1, 参考2)
base.downloadENV["SYSTEMROOT"]C:\WindowsからSystem32\curl.exeが存在するかチェックするようです。このあたり、調べられていません。)

はじめに

今回はENV["JUPYTER"]に自力でインストールしたJupyter Notebookのパスを設定するだけなのだけれど、経緯を含めて以下に記す。

前編(本記事) / 後編

きっかけ

ときどき、工学系の研究や開発で信号の誤り率をシミュレーションする必要が出てくる。
そんなときにプログラミングが上手くないばかりにプログラムの実行速度が遅くストレスが溜まってしまう。
噂によるとJulia言語を使えばあまりプログラミングの巧拙によらずに高速動作をするプログラムが書けるらしく、興味を持った。

「download関数を使用しない」とは

ところで、WindowsではJuliaをインストールした後、IJuliaなどの種々のパッケージを追加する際にdownload関数で色々こけることがあるらしい。
ネタばれすると、私も会社のプロキシサーバを突破できずに困ってしまった。
そのため、なるべくdownload関数、特にBase.downloadを使わないようにインストール作業を行った。

環境

  • マシン - Windows10(64bit)
  • Anaconda3 - ver 5.0.1
  • Julia - ver 0.6.1

前提

Jupyter Notebookのことはある程度知っていて、そこにJuliaを追加するためにIJuliaパッケージをビルドすることが目的であると理解している。

○追記1 コメントで教えていただいたJuliaPro(23/05/27 リンク切れ)というディストリビューションにIJuliaが入っているようだ(要登録)。

手順

Step1 : Anaconda3

とりあえず全てデフォルトでインストールする。
インストールしたディレクトリは覚えておくこと。
Jupyter Notebookを実行すると以下のような画面が出る。

image.png

image.png

ホームディレクトリを指定したい場合(とりあえずの解決方法)

  1. アイコンからプロパティを表示して、「リンク先」の%USERPROFILE%を削除する
  2. 作業フォルダー(以下の画像でいうC:\Users\YourUserName)にある.jupyter\jupyter_notebook_config.pyをエディタで開き次のように編集する
jupyter_notebook_config.py
c.NotebookApp.notebook_dir = 'C:\work' #場所は好みで

image.png

○追記2 %USERPROFILE%を目的の場所に書き換えるだけでいいようだ。

Step2 : Julia

とりあえずインストールする。
Juliaを実行すると以下のような画面が出る。
ここでいろいろやるだけでも楽しい。

image.png

image.png

環境変数を設定する

JuliaはWindowsの環境変数をENVに読み込んでくれるので、以下のように環境変数を設定する。

  1. Anacondaがインストールされたディレクトリを<AnacondaDirectory>とする。
  2. Juliaのパッケージを置いておきたい場所を<JuliaPackageDirectory>とする。
  3. Gitのために、以下のプロキシサーバ周りの環境変数を設定する。プロキシサーバのアドレスをproxyserver、ユーザ名をusername、パスワードをpasswordとする。(プロキシサーバを経由しない環境であれば本設定は必要ない)
環境変数
JUPYTER=<AnacondaDirectory>\Scripts\jupyter.exe
JULIA_PKGDIR=<JuliaPackageDirectory>
JULIA_HOME=<JuliaPackageDirectory>\bin
HTTP_PROXY=http://username:password@proxyserver:8080/
HTTPS_PROXY=http://username:password@proxyserver:8080/

一応、毎回Juliaのコンソールで最初に以下のコードを実行しても結果は同じ。

julia
ENV["JUPYTER"] = "<AnacondaDirectory>\\Scripts\\jupyter.exe" #バックスラッシュは2つ
ENV["JULIA_PKGDIR"] = "<JuliaPackageDirectory>"
ENV["JULIA_HOME"] = "<JuliaPackageDirectory>\\bin"
ENV["HTTP_PROXY"] = "http://username:password@proxyserver:8080/"
ENV["HTTPS_PROXY"] = "http://username:password@proxyserver:8080/"

パッケージを追加する

以下のコードを実行する。

julia
Pkg.init()
Pkg.add("IJulia")

このときにあらかじめJupyter Notebookをインストールしておかないと途中でJupyter Notebookのダウンロードが始まり、Base.download()が使用されてこけてしまう。

これまでの作業で

それでもパッケージの追加の途中で失敗してしまっただろうか。
私も試行錯誤して上記の方法でIJuliaのビルドは通過するようになったのだが、まだWinRPMというパッケージで上手くいかない状態だった。
結局、パッケージのコードを少し書き換えて無理やり突破したのだけれど、それは次の記事で紹介したいと思う。

参考

10
7
0

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
10
7