「pyenv内のMinicondaでEMAN2仮想環境を構築する」の版間の差分

提供: Eospedia
移動: 案内検索
 
(同じ利用者による、間の2版が非表示)
行11: 行11:
 
== 更新履歴 ==
 
== 更新履歴 ==
 
* 2020/03/19 新規作成
 
* 2020/03/19 新規作成
 +
* 2020/03/25 一番最後の「使う」の項目を修正
  
 
== 手順 ==
 
== 手順 ==
行22: 行23:
 
* MinicondaはAnacondaのミニマルインストール版で、初期インストールされているライブラリが少ないこと以外はAnacondaと同じ。
 
* MinicondaはAnacondaのミニマルインストール版で、初期インストールされているライブラリが少ないこと以外はAnacondaと同じ。
 
** https://docs.conda.io/en/latest/miniconda.html
 
** https://docs.conda.io/en/latest/miniconda.html
* EMAN2の公式ではMinicondaを使ったビルド手順が紹介されている。
+
* EMAN2の公式ではMinicondaを使ったビルド手順(pyenvは使わない)が紹介されている。
 
** https://blake.bcm.edu/emanwiki/EMAN2/COMPILE_EMAN2_ANACONDA
 
** https://blake.bcm.edu/emanwiki/EMAN2/COMPILE_EMAN2_ANACONDA
  
行31: 行32:
  
 
* 4.6.14指定としたのは、[https://blake.bcm.edu/emanwiki/EMAN2/COMPILE_EMAN2_ANACONDA EMAN2公式]で「Download and install this specific version (4.6.14) of Miniconda」との指示があるため。他のバージョンでどうなるかは検証していない。
 
* 4.6.14指定としたのは、[https://blake.bcm.edu/emanwiki/EMAN2/COMPILE_EMAN2_ANACONDA EMAN2公式]で「Download and install this specific version (4.6.14) of Miniconda」との指示があるため。他のバージョンでどうなるかは検証していない。
* miniconda3なのでPython3が入る。EMAN2はPython2→3への以降作業中で、ぼちぼち安定に近づきつつあるらしいので、今回はPython3でビルドすることにした。
+
* miniconda3なのでPython3が入る。EMAN2はPython2→3への以降作業中で、[https://groups.google.com/d/msg/eman2/khs59e22yiM/0jJ1y2dcAgAJ Python3版はぼちぼち安定に近づきつつあるらしい]ので、今回はPython3でビルドすることにした。
  
 
<u>② miniconda3-4.6.14仮想環境をアクティベートする。</u>
 
<u>② miniconda3-4.6.14仮想環境をアクティベートする。</u>
行81: 行82:
  
 
=== 使う ===
 
=== 使う ===
上記まで終わっていれば、Pythonインタープリタを起動するとEMAN2ライブラリをインポート可能となっている。
+
新しいターミナルを起動する。
 +
eman2の各種実行ファイルは $HOME/.pyenv/shims/bin にコピー?されており、またそのディレクトリは$PATHに追加されている(はず)。
  
各種実行ファイルを使うにはとりあえず
+
各種実行ファイルが使えるかテストするには、以下の様にする。
 
<pre>
 
<pre>
export PATH=$HOME/.pyenv/versions/miniconda3-4.6.14/bin:$PATH
+
cd $HOME/softwares/eman2/build
 +
pyenv local miniconda3-4.6.14
 +
make test
 +
</pre>
 +
 
 +
上記でエラーが出ないようならokで、pyenvをminiconda3-4.6.14に切り替えればいつでもeman2を実行可能となる。
 +
 
 +
もし何かエラーが出た場合は、
 +
<pre>
 +
make test-verbose
 
</pre>
 
</pre>
とすればいいのだが、.bashrcなどに書く場合は、現在の仮想環境がminiconda3-4.6.14である場合のみパスを通す設定とする必要がある。
+
を実行し、エラーの内容を確認する必要がある。

2020年3月25日 (水) 09:04時点における最新版

クライオ電顕備忘録に属する記事です。

概要

  • Python環境について、Anacondaとお別れしてpyenv/pyenv-virtualenvに乗り換えることにした。
  • Anaconda依存のEMAN2はpyenvとは別個にインストールしておけばよいのだが、環境を一元管理したいのでpyenv隷下にインストールすることにした。
  • 実際やってみた感想としては、公式のMinicondaを用いたソースビルドよりも手間がかからず、個人的には気に入った。
  • ただしEMAN2はPython3ビルドとした。
  • 検証環境
    • Ubuntu 18.04 (Docker, nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04)

更新履歴

  • 2020/03/19 新規作成
  • 2020/03/25 一番最後の「使う」の項目を修正

手順

pyenv

  • pyenvは異なるPythonバージョンを個別の仮想環境として分けて管理してくれるツール。
  • 公式に従いインストールする。
  • pyenv-virtualenvと併用すると、同じpyenvの仮想環境をベースとして、さらに細かく仮想環境を構築できる。今回はpyenvしか使わない。

Miniconda仮想環境の構築

① pyenv installコマンドによりminiconda3-4.6.14仮想環境をインストールする。

pyenv install miniconda3-4.6.14
  • 4.6.14指定としたのは、EMAN2公式で「Download and install this specific version (4.6.14) of Miniconda」との指示があるため。他のバージョンでどうなるかは検証していない。
  • miniconda3なのでPython3が入る。EMAN2はPython2→3への以降作業中で、Python3版はぼちぼち安定に近づきつつあるらしいので、今回はPython3でビルドすることにした。

② miniconda3-4.6.14仮想環境をアクティベートする。

pyenv local miniconda3-4.6.14

EMAN2依存関係のインストール

Python関係

  • EMAN2公式の、"Python 3 Environment (usable, but buggy 2/14/2020)"の項を参照した。
  • ただしpyenvの中のcondaでさらに仮想環境を構築したりすると面倒なことになりそうだったため、仮想環境は構築せずにそのままインストールを進めることにした。
conda install eman-deps-dev=22.1 -c cryoem -c defaults -c conda-forge
  • condaのアクティベートなどの操作は特に必要なかった。

それ以外

  • CMake >= 3.14が必要。Ubuntu 18.04はaptだと3.10しか入らなかったので、筆者は3.16.5をソースからビルドしてインストールした。
  • その上で、以下をインストールした。
sudo apt install libgl1-mesa-dev freeglut3-dev
  • 筆者が中途半端にいじったUbuntu18.04のDockerコンテナでの結果なので、本来は上記より必要なものは多いハズ。

EMAN2のビルドとインストール

① どこか適当なところにEMAN2のソースをダウンロードする。筆者は $HOME/softwares/ にした。

cd $HOME/softwares
git clone https://github.com/cryoem/eman2.git
  • Python3版のソースはmasterブランチなのでこのままでいい。

② Makefile生成

cd eman2
mkdir build
cd build
cmake ..
  • cmakeで足りないライブラリなど指摘されたら、適宜condaとかaptでインストールする。

③ ビルドとインストール

make -j
make install
  • pyenvのルートディレクトリが $HOME/.pyenv だとすると、インストール先は $HOME/.pyenv/versions/miniconda3-4.6.14/ 以下となる。
  • e2display.pyなどの各種実行ファイルは $HOME/.pyenv/versions/miniconda3-4.6.14/bin に入っている。

使う

新しいターミナルを起動する。 eman2の各種実行ファイルは $HOME/.pyenv/shims/bin にコピー?されており、またそのディレクトリは$PATHに追加されている(はず)。

各種実行ファイルが使えるかテストするには、以下の様にする。

cd $HOME/softwares/eman2/build
pyenv local miniconda3-4.6.14
make test

上記でエラーが出ないようならokで、pyenvをminiconda3-4.6.14に切り替えればいつでもeman2を実行可能となる。

もし何かエラーが出た場合は、

make test-verbose

を実行し、エラーの内容を確認する必要がある。