LoginSignup
16
12

More than 5 years have passed since last update.

シミュレーション用計算環境の構築

Last updated at Posted at 2017-09-24

いろいろシミュレーションなどするときの環境を構築するにあたって、システム環境が壊れてしまったりしてととてもめんどくさいをすることが多いです。そこで、通常使う環境をシステム環境に影響のないやり方で構築する方法をまとめてみました。

今回構築する環境

  • ubuntu (本当はxubuntu17.04を使っています。18.04になったらubuntuに戻るかどうかをもう一度考え直すかも)
  • python 3.5以上の最新版 (numpy で行列式演算子の @ を利用したいので、3.6以上が望ましい)
    • numpy, scipy, matplotlib, jupyter notebook
    • spyder 数値計算やシミュレーション用の環境を構築するには、jupyer notebookよりもこちらのほうが便利かも
  • R (なんだかんだでこっちも使います)
    • rstudio, tidyverse
  • latex (論文執筆用、システムに同梱されるtexliveで困らない)
  • julia (数値計算の高速化用 こちらも最新版)
  • pycharm (IDE)

基本的には、texlive を除いて、最新環境が欲しいものは $HOME以下に構築することにします。具体的には、以下のようなディレクトリ構成にします。

$HOME
  .local/julia
  .local/pycharm
  .pyenv/(anacondaでpython、R、juliaを管理)

pythonの環境構築

データサイエンティストを目指す人のpython環境構築 2016を参照しつつ構築します。

ubuntuの基本パッケージ

あとあと gcccmakegitは必要となるの先に導入してしまいます。

sudo apt install build-essential cmake git

pyenv

まずは、pyenvを導入します。

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

anaconda

anacondaは最新版をインストールします。pyenv上のグローバル環境に設定します。pythonを使い分けることは考えていないので、 $PYENV_ROOT/versions/anaconda3-4.4.0/bin にパスを通すことはしません。

pyenv install -l # インストール可能な環境を確認
pyenv install anaconda3-4.4.0
pyenv rehash
pyenv global anaconda3-4.4.0
conda update conda 
conda update --all

ここで、spyder, numpy, scipy, matplotlibはインストールされるはずです。ただし、spyder はQT5のライブラリの関係でfcitxで日本語入力ができないので、後述の対処を行ってください。

conda のレポジトリに登録されていないパッケージのインストールは pip を利用します。ここで、conda の環境が破壊されると後々めんどくさいことになるので、 pip --user として $HOME/.local/lib以下にpythonのモジュールをインストールします。

pip install --user simpy 
pip install --user actdiag blockdiag 
pip install --user blockdiagcontrib-cisco blockdiagcontrib-class blockdiagcontrib-eps blockdiagcontrib-excelhogan 
pip install --user blockdiagcontrib-excelshape blockdiagcontrib-labeledbox blockdiagcontrib-math blockdiagcontrib-nationalflags 
pip install --user blockdiagcontrib-octicons blockdiagcontrib-qb blockdiagcontrib-square blockdiagcontrib-tex
pip install --user funcparserlib Markdown markdown-blockdiag nwdiag seqdiag simpy 
pip install --user sphinxcontrib-actdiag sphinxcontrib-blockdiag sphinxcontrib-nwdiag sphinxcontrib-seqdiag 
pip install --user sphinxjp.themecore sphinxjp.themes.basicstrap sphinxjp.themes.bizstyle
pip install --user sphinxjp.themes.dotted sphinxjp.themes.gopher sphinxjp.themes.htmlslide hinxjp.themes.impressjs 
pip install --user sphinxjp.themes.revealjs sphinxjp.themes.s6 sphinxjp.themes.sphinxjp webcolors 

Texlive

Texliveはubuntuに付属のものを使います。フルインストールでも困ることはありませんが、日本語・英語環境のみが欲しいだけだけですので、TeX wikiのtexlive導入 を参考にします。

sudo apt install texlive-lang-japanese
sudo apt install texlive-luatex texlive-latex-recommended texlive-latex-extra 
sudo apt fonts-lmodern texlive-xetex latex-cjk-common texlive-fonts-extra

R

Rはubuntu添付のものではなく、condaで管理ことにします。ついでに、jupyter用のカーネルもインストールします。

conda install -c r r-essentials rstudio r-tidyverse r-irkernel

ただし、RstudioはQT5のライブラリの関係でfcitxで日本語入力ができないので、後述の対処を行ってください。

QT5アプリケーションへのfcitxからの日本語入力

qt5ライブラリは、conda環境のものを使用することになります。ubuntuのqt5には libfcitxplatforminputcontextplugin.so がデフォルトでインストールされますが、condaには添付されていないので、自前で用意する必要があります。

Ubuntu 16.04LTSでのQtCreator日本語入力 を参考にビルドします。

ビルドするための必要なライブラリをインストールします。

$ sudo apt-get install ecm extra-cmake-modules fcitx-libs-dev libxkbcommon-dev libxkbcommon-x11-dev

fcitx用のplatform input context pluginビルドします。

git clone git@github.com:fcitx/fcitx-qt5.git
cd ${git clone先のディレクトリ}
git checkout -b Release1.1.0 1.1.0
mkdir build
cd ./build
PATH=$PYENV_ROOT/versions/anaconda3-4.4.0/bin:$PATH  cmake .. -DCMAKE_PREFIX_PATH=$PYENV_ROOT/versions/anaconda3-4.4.0
make

ubuntu 16.04だと make に失敗することがあるようです。とりあえず、 libfcitxplatforminputcontextplugin.so がほしいだけなので、make fcitxplatforminputcontextplugin でも大丈夫です。

cp ./platforminputcontext/libfcitxplatforminputcontextplugin.so $PYENV_ROOT/versions/anaconda3-4.4.0/plugins/platforminputcontexts/

終わったら、シェアードオブジェクトをcondaのプラグインディレクトリにコピーします。

Julia

Juliaは公式ホームページから最新版をダウンロードしてインストールします。

wget https://julialang-s3.julialang.org/bin/linux/x64/0.6/julia-0.6.0-linux-x86_64.tar.gz
tar zxvf julia-0.6.0-linux-x86_64.tar.gz
mv julia-{なにかの文字列} $HOME/.local
ln -s $HOME/.local/julia-{なにかの文字列} $HOME/.local/julia
echo 'export PATH="$HOME/.local/julia/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

juliaは絶賛開発中なので、後々バージョンアップすることを考えて、シンボリックリンクを張ったうえでパスを通しておきます。

Pkg.add("IJulia")
Pkg.add("DataFrames")
Pkg.add("RDatasets")
Pkg.add("Plots")
Pkg.add("PyPlot")
Pkg.add("GR")
Pkg.add("Gadfly")
Pkg.add("DifferentialEquations")
Pkg.add("ODE")
Pkg.update()
Pkg.build()

juliaに導入するパッケージはREPLからインストールします。

pycharm

pycharmは公式ホームページから最新版をダウンロードしてインストールします。

$ wget https://download.jetbrains.com/python/pycharm-community-{バージョン}.tar.gz
$ tar zxvf pycharm-community-2017.2.3.tar.gz
$ mv pycharm-{なにかの文字列} $HOME/.local
$ ln -s $HOME/.local/pycharm-{なにかの文字列} $HOME/.local/pycharm
$ echo 'export PATH="$HOME/.local/pycharm/bin:$PATH"' >> ~/.bashrc
$ source ~/.bashrc

このままだと日本語入力できないので、ubuntuのfcitxの設定からFcitx XIM Frontendを有効にします。

16
12
1

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
16
12