「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仮想環境を使うみたいなことができる。素晴らしかー。