「MacOSでAnaconda3を用いてEMAN2仮想環境を構築する」の版間の差分
(ページの作成:「== この記事について == * Macの場合で、Anaconda3をPython環境として使ってEMAN2をソースからビルドする方法について書き残しておく...」) |
|||
| (同じ利用者による、間の5版が非表示) | |||
| 行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日実施。 | ||
| + | |||
== 実行環境 == | == 実行環境 == | ||
| 行8: | 行9: | ||
* macOS Mojave 10.14.6 | * macOS Mojave 10.14.6 | ||
* XCodeとかCommandLineToolとかはインストール済み | * XCodeとかCommandLineToolとかはインストール済み | ||
| + | |||
== 手順 == | == 手順 == | ||
| 行18: | 行20: | ||
※ 公式手順ではAnaconda2 (Python2をベースとするAnaconda)だし、EMAN2はPython2依存だが、今回はAnaconda3でPython2仮想環境を用意し、それを使ってビルドする。 | ※ 公式手順ではAnaconda2 (Python2をベースとするAnaconda)だし、EMAN2はPython2依存だが、今回はAnaconda3でPython2仮想環境を用意し、それを使ってビルドする。 | ||
| − | ==== | + | === <u>EMAN2仮想環境の作成</u> === |
| − | + | ==== EMAN2仮想環境作成 ==== | |
| + | Anaconda3インストール後に新規ターミナルを立ち上げて、 | ||
| + | <pre> | ||
| + | > conda create -n eman-env cmake=3.9 python=2.7 -c defaults | ||
| + | </pre> | ||
| + | 上記の様にconda createで python=2.7 とすれば、Python3ベースのAnaconda3でもPython2環境を構築できる。 | ||
| + | |||
| + | ==== EMAN2仮想環境へ必要物をインストール ==== | ||
<pre> | <pre> | ||
| − | + | > conda install -n eman-env eman-deps=14 -c cryoem -c defaults -c conda-forge | |
| − | > conda | + | </pre> |
| − | + | ==== EMAN2仮想環境への切り替え ==== | |
| − | > conda - | + | <pre> |
| − | + | > conda activate eman-env | |
</pre> | </pre> | ||
| − | |||
| − | === <u> | + | 公式( https://blake.bcm.edu/emanwiki/EMAN2/COMPILE_EMAN2_ANACONDA )では "source activate eman-env" となっているが、それは古い情報で、新しいAnacondaでは conda activate コマンドで切り替えられる。 |
| + | |||
| + | === <u>EMAN2のビルドとインストール</u> === | ||
| + | ==== ソースコードの用意 ==== | ||
| + | Githubからソースを取ってくる。~/SoftwaresにEMAN2を置くことにする。 | ||
<pre> | <pre> | ||
| − | > | + | > cd ~/Softwares |
| + | > git clone https://github.com/cryoem/eman2.git | ||
| + | |||
| + | # 2019年8月現在の最新の安定版をチェックアウト | ||
| + | > git checkout v2.3 | ||
</pre> | </pre> | ||
| − | + | ==== ビルド ==== | |
| + | <pre> | ||
| + | > cd ~/Softwares/eman2 | ||
| + | > mkdir build && cd build | ||
| + | > cmake .. | ||
| + | > make -j | ||
| + | </pre> | ||
| + | |||
| + | makeでものっそい警告吐かれるけど気にしない。 | ||
| + | |||
| + | ==== インストール ==== | ||
| + | <pre> | ||
| + | > make install | ||
| + | </pre> | ||
| + | |||
| + | ~/anaconda3/envs/eman-env/bin/ にEMAN2のプログラムがインストールされる。 | ||
| + | |||
| + | ==== テスト ==== | ||
| + | <pre> | ||
| + | > 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 | ||
| + | </pre> | ||
| + | |||
| + | 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環境を作ることにする。 | ||
| + | |||
| + | <pre> | ||
| + | > conda create --name py373 --clone base | ||
| + | </pre> | ||
| + | |||
| + | これで py373という名前のPython3環境を作れた。 | ||
| + | |||
| + | 仮想環境の切り替えは conda activate で行う。 | ||
| + | <pre> | ||
| + | # 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() | ||
| + | </pre> | ||
| + | |||
| + | 現在の仮想環境は、コマンドプロンプトの上側とかに (eman-env) とか (base) とかって感じで表示される。もちろんシェル単位で切り替えられるので、かたやEMAN2用の仮想環境を使いつつ、かたやフツーのPython3仮想環境を使うみたいなことができる。素晴らしかー。 | ||
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仮想環境を使うみたいなことができる。素晴らしかー。