はじめに
Google Colaboratoryはクラウド環境でPythonが実行できるサービスとして有名ですが、Juliaを実行することもできます。Juliaを利用する方法については、以下の記事が参考になります。
ところで、ある程度まとまったコードをすでに書いており、それをGoogle Colaboratoryで使いたいという需要もまたあるのではないかと思います。そこでこの記事では、Juliaの実行環境が構築されていることを前提に、GithubのレポジトリをcloneしてGoogle Colaboratoryで利用する方法をまとめました。
やり方
JuliaのパッケージがGithubのrepositoryに置いてある場合を考えます。repositoryはPrivateでもPublicでも構いません。
Personal access tokenを作成する
この記事の執筆時点で、Githubはパスワード認証を廃止しています。代わりに利用できるのがPersonal access tokenを用いた認証です。tokenを作成する方法は公式ページを参照してください。然るべき手順を踏んで"Generate token"すると、ghp_***************
といった長い文字列が表示されるので、これを記憶しておきます。
cloneする
次にGoogle Colaboratoryのノートブック(すでに規定のカーネルがJuliaになっているものとします)を開き、以下のコマンドをコードブロックに書きこんで実行します。
run(`git clone https://USERNAME:TOKEN@github.com/USERNAME/REPOSITORYNAME.git`)
ここで、USERNAME
はGithubのユーザー名、TOKEN
は上で作成したアクセストークン、REPOSITORYNAME
はrepositoryの名前です。例えば、ユーザー名がJohnSmith
、TOKEN
がghp_hogehogehoge
、repository名がMyrepo
の場合、
run(`git clone https://JohnSmith:ghp_hogehogehoge@github.com/JohnSmith/Myrepo.git`)
となります。run(`ls -l`)
コマンドを打って、Myrepo
というディレクトリができていれば成功です。
パスを通す
cloneしたパッケージをJuliaに認識させる作業を行います。
以下のコマンドをコードブロックに書きこんで実行します。前節でクローンしてきたパッケージMyrepo
が、以下のようなディレクトリ構造を持っているとします。
C:.
├─docs
├─src
│ ├─MyModule.jl
│ ├─hoge.jl
| └─fuga.jl
├─test
| └─runtests.jl
├─Manifest.toml
├─Project.toml
└─README.md
この場合、ソースコード類はsrc
に収められています。ここへのパスを通すには、
push!(LOAD_PATH, "/content/Myrepo/src")
を実行すればOkです。ちなみに、/content
はGoogle Colaboratoryを立ち上げたときのカレントディレクトリです。これは、run(`pwd`)
によって確認できます。無事パスが通れば、
using MyModule
によって読み込みができるようになっているはずです。お疲れさまでした。
サンプル
サンプルはGistで公開しています。このnotebookをGoogle Colaboratoryにアップロードして、順番にコードブロックを実行すれば動作すると思います。