「MacOSでAnaconda3を用いてEMAN2仮想環境を構築する」の版間の差分
(→Anaconda3のインストール) |
|||
(同じ利用者による、間の1版が非表示) | |||
行1: | 行1: | ||
== この記事について == | == この記事について == | ||
− | * | + | * Macの場合で、Anaconda3をPython環境として使ってEMAN2をソースからビルドし、EMAN2の仮想環境を構築する方法について書き残しておく。 |
* 公式手順は https://blake.bcm.edu/emanwiki/EMAN2/COMPILE_EMAN2_ANACONDA だが、ちょっと違う方法でやってみた。 | * 公式手順は https://blake.bcm.edu/emanwiki/EMAN2/COMPILE_EMAN2_ANACONDA だが、ちょっと違う方法でやってみた。 | ||
* 2019年8月23日実施。 | * 2019年8月23日実施。 | ||
行22: | 行22: | ||
=== <u>EMAN2仮想環境の作成</u> === | === <u>EMAN2仮想環境の作成</u> === | ||
==== EMAN2仮想環境作成 ==== | ==== EMAN2仮想環境作成 ==== | ||
+ | Anaconda3インストール後に新規ターミナルを立ち上げて、 | ||
<pre> | <pre> | ||
> conda create -n eman-env cmake=3.9 python=2.7 -c defaults | > conda create -n eman-env cmake=3.9 python=2.7 -c defaults |
2019年8月23日 (金) 09:58時点における最新版
目次
この記事について
- Macの場合で、Anaconda3をPython環境として使ってEMAN2をソースからビルドし、EMAN2の仮想環境を構築する方法について書き残しておく。
- 公式手順は https://blake.bcm.edu/emanwiki/EMAN2/COMPILE_EMAN2_ANACONDA だが、ちょっと違う方法でやってみた。
- 2019年8月23日実施。
実行環境
- Mac mini (Late 2012)
- macOS Mojave 10.14.6
- XCodeとかCommandLineToolとかはインストール済み
手順
Anaconda3のインストール
インストーラのダウンロードとインストールの実施
https://www.anaconda.com/distribution で Python 3.7 version の 64-Bit Graphical Installer (653 MB) をダウンロード。
Anaconda3-2019.07-MacOSX-x86_64.pkg をダブルクリックしてインストールを実施した。
※ 公式手順ではAnaconda2 (Python2をベースとするAnaconda)だし、EMAN2はPython2依存だが、今回はAnaconda3でPython2仮想環境を用意し、それを使ってビルドする。
EMAN2仮想環境の作成
EMAN2仮想環境作成
Anaconda3インストール後に新規ターミナルを立ち上げて、
> conda create -n eman-env cmake=3.9 python=2.7 -c defaults
上記の様にconda createで python=2.7 とすれば、Python3ベースのAnaconda3でもPython2環境を構築できる。
EMAN2仮想環境へ必要物をインストール
> conda install -n eman-env eman-deps=14 -c cryoem -c defaults -c conda-forge
EMAN2仮想環境への切り替え
> conda activate eman-env
公式( https://blake.bcm.edu/emanwiki/EMAN2/COMPILE_EMAN2_ANACONDA )では "source activate eman-env" となっているが、それは古い情報で、新しいAnacondaでは conda activate コマンドで切り替えられる。
EMAN2のビルドとインストール
ソースコードの用意
Githubからソースを取ってくる。~/SoftwaresにEMAN2を置くことにする。
> cd ~/Softwares > git clone https://github.com/cryoem/eman2.git # 2019年8月現在の最新の安定版をチェックアウト > git checkout v2.3
ビルド
> cd ~/Softwares/eman2 > mkdir build && cd build > cmake .. > make -j
makeでものっそい警告吐かれるけど気にしない。
インストール
> make install
~/anaconda3/envs/eman-env/bin/ にEMAN2のプログラムがインストールされる。
テスト
> make test Running tests... Test project /Users/kttn/Softwares/eman2/build Start 1: imports 1/5 Test #1: imports .......................... Passed 3.95 sec Start 2: test-EMAN2DIR 2/5 Test #2: test-EMAN2DIR .................... Passed 2.35 sec Start 3: nose-tests 3/5 Test #3: nose-tests ....................... Passed 16.21 sec Start 4: progs 4/5 Test #4: progs ............................ Passed 145.37 sec Start 5: py-compile 5/5 Test #5: py-compile ....................... Passed 5.19 sec 100% tests passed, 0 tests failed out of 5 Total Test time (real) = 173.17 sec
e2display.pyをsambaでマウントしたファイルシステム内のディレクトリで実行したら "IOError: [Errno 45] Operation not supported"が頻発してムカついたが(動作はする)、ローカルのディレクトリでは特に問題が起きなかったので、まぁ良いということにする。 あと、e2boxer.pyの挙動が微妙に不安定で嫌な感じだが、とりあえずこれで使ってみることにする。
おまけ
Anaconda3では好きなだけ仮想環境を作ることができる。上記で作ったのは eman-env という名前のEMAN2用仮想環境である。
EMAN2がPython2に依存しているので、EMAN2を使うときには嫌々Python2を使うしかない。普段使い用としては、Python3の仮想環境を作成して使いましょう。
今回はAnaconda3を入れたので、基本となる仮想環境 "base" はPython3環境である。baseをコピーして、普段使い用のPython3環境を作ることにする。
> conda create --name py373 --clone base
これで py373という名前のPython3環境を作れた。
仮想環境の切り替えは conda activate で行う。
# eman-envへの切り替え (base) [18:45:25 ~/workmac01/tmp/eman2-test] > conda activate eman-env INFO: eman-deps activation script is making the following environmental changes: +++ LDFLAGS= +++ LDFLAGS= +++ CXXFLAGS= +++ set +x # pythonをインタラクティブモードで実行 (eman-env) [18:45:34 ~/workmac01/tmp/eman2-test] > python Python 2.7.14 |Anaconda, Inc.| (default, Mar 27 2018, 12:28:59) [GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> exit() # py373への切り替え (eman-env) [18:46:23 ~/workmac01/tmp/eman2-test] > conda activate py373 # pythonをインタラクティブモードで実行 (py373) [18:46:31 ~/workmac01/tmp/eman2-test] > python Python 3.7.3 (default, Mar 27 2019, 16:54:48) [Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin Type "help", "copyright", "credits" or "license" for more information. >>> exit()
現在の仮想環境は、コマンドプロンプトの上側とかに (eman-env) とか (base) とかって感じで表示される。もちろんシェル単位で切り替えられるので、かたやEMAN2用の仮想環境を使いつつ、かたやフツーのPython3仮想環境を使うみたいなことができる。素晴らしかー。