お気楽併用法のヒントを3行で
- anacondaを入れる
- juliaをインストール
- 用いるancondaのバージョンを指定して、PyCallパッケージとCondaパッケージを入れる。
anacondaのところはminicondaでも良い。
conda系が嫌いな人は、普段使いのpythonを別にしても良いけれど、パッケージをjuliaとpythonとで共有したい場合、素直にcondaにpythonのバージョン管理を任せてしまった方が良い。
私がやったこと
以下、apt updateが使えないUbuntuでの作業例。
git/curl等が入っていること、前提。
①pyenv経由で、anaconda入れる
pyenv使うことで、何かあった時にanacondaから離れることも簡単にできる。
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc
pyenv install -l | grep ana
pyenv install anaconda3-2019.03
②juliaをインストール
curl https://julialang-s3.julialang.org/bin/linux/x64/1.0/julia-1.1.0-linux-x86_64.tar.gz
tar zxvf julia-1.1.0-linux-x86_64.tar.gz
echo 'export PATH="$PATH:/home/kmr/julia-1.1.0/bin"' >> ~/.bashrc
③用いるancondaのバージョンを指定して、PyCallパッケージとCondaパッケージを入れる。
ここは多少戸惑う可能性が高い。
Pythonとjuliaを併用する場合、PyCallパッケージとCondaパッケージについてある程度理解しておいた方が良いので、以下など参考にしてご自身で入れてみよう(私も多少試行錯誤した)。
http://heine98.hatenablog.com/entry/2018/10/13/095003
https://qiita.com/tenfu2tea/items/d2ac1427eaed7a548287
正しくCondaが使えるようになっているかの確認
pip経由で使いたいpythonライブラリを入れてからjuliaのREPLに入る。
Conda.list()で、目的のライブラリ(私の場合janome)を確認できればOK。
julia> using Conda
julia> Conda.list()
[ Info: Running `conda list` in root environment
WARNING: The conda.compat module is deprecated and will be removed in a future release.
# packages in environment at /home/kmr/.pyenv/versions/anaconda3-2019.03:
#
# Name Version Build Channel
_ipyw_jlab_nb_ext_conf 0.1.0 py37_0
alabaster 0.7.12 py37_0
anaconda 2019.03 py37_0
..(以下、ずらすらとanaconda経由のパッケージが出てくる)..
janome 0.3.8 pypi_0 pypi
....
JuliaでJanome
using PyCall
jt = pyimport("janome.tokenizer")
t = jt.Tokenizer()
doc ="""Juliaでjanomeの助けを借り、形態素解析界隈のハローワールド、
すもももももももものうちをしてみんと思う。"""
for tk in t.tokenize(doc)
println("$(tk.surface) : $(tk.part_of_speech)")
end
$ julia janome.jl
Julia : 名詞,一般,,
で : 助詞,格助詞,一般,*
janome : 名詞,一般,,
の : 助詞,連体化,,
助け : 名詞,一般,,
を : 助詞,格助詞,一般,*
借り : 動詞,自立,,
、 : 記号,読点,,
形態素 : 名詞,一般,,
解析 : 名詞,サ変接続,,
界隈 : 名詞,一般,,
の : 助詞,連体化,,
ハロー : 名詞,一般,,
ワールド : 名詞,一般,,
、 : 記号,読点,,
: 記号,空白,,
すもも : 名詞,一般,,
も : 助詞,係助詞,,
もも : 名詞,一般,,
も : 助詞,係助詞,,
もも : 名詞,一般,,
の : 助詞,連体化,,
うち : 名詞,非自立,副詞可能,*
を : 助詞,格助詞,一般,*
し : 動詞,自立,,
て : 助詞,接続助詞,,
みん : 動詞,非自立,,
と : 助詞,格助詞,引用,*
思う : 動詞,自立,,
。 : 記号,句点,,