MacでAnaconda/Jupyter Notebook をつかえる環境を構築する(含 Homebrew,pyenv,Pythonのインストール)
Pythonでデータ分析とかしてると、Jupyter Notebook っていうブラウザ上のコンソールでPythonを操作するサンプルなどがネットで出てきます。。それらを実行するJupyter Notebook環境をMacで構築するときの手順メモです。
Jupyter Notebook は、データ分析・科学計算などのプラットフォームであるAnacondaに同梱されているモノをインストールしようと思います。
前準備
PythonはPython2系と3系があって、Macにはデフォルトで2系がインストールされています。で、その環境を壊すことなく別バージョンのPython(Python3やAnacondaのこと)を使用するには、pyenvというバージョン切替ツールをつかうことが多いです。そしてそして、そのpyenvは MacのパッケージマネージャであるHomebrew経由でインストールします。
Homebrewのインストール
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew --version
Homebrew 1.8.2
Homebrew/homebrew-core (git revision 6f74; last commit 2018-11-11)
$
以上です。
pyenvのインストール
早速Homebrewでpyenvを入れます。
$ brew install pyenv
==> Downloading https://homebrew.bintray.com/bottles/pyenv-1.2.8.mojave.bottle.t
######################################################################## 100.0%
==> Pouring pyenv-1.2.8.mojave.bottle.tar.gz
🍺 /usr/local/Cellar/pyenv/1.2.8: 612 files, 2.4MB
インストールはOK。.bash_profileに以下を追加します。
$ cat << '__EOF__' >> ~/.bash_profile
## Set path for pyenv
export PYENV_ROOT="${HOME}/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
export PATH=${PYENV_ROOT}/bin:$PATH
eval "$(pyenv init -)"
fi
__EOF__
$
$ cat ~/.bash_profile
## Set path for pyenv
export PYENV_ROOT="${HOME}/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
export PATH=${PYENV_ROOT}/bin:$PATH
eval "$(pyenv init -)"
fi
$ source ~/.bash_profile
$ pyenv --version
pyenv 1.2.8
$
以上で、pyenvのインストール完了です。
pyenvでのPythonのセットアップ
$ python --version
Python 2.7.10
Macには、このPythonが標準で入っています。
$ pyenv versions
* system (set by /Users/xxx/.pyenv/version)
pyenvでインストールできるPythonを一覧してみます。
$ pyenv install --list
Available versions:
...
3.6.7
3.7.0
3.7-dev
3.7.1
3.8-dev
...
anaconda3-5.2.0
anaconda3-5.3.0
ためしに3.7.1を入れてみます。
$ pyenv install 3.7.1
python-build: use openssl from homebrew
python-build: use readline from homebrew
Downloading Python-3.7.1.tar.xz...
-> https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
Installing Python-3.7.1...
python-build: use readline from homebrew
Installed Python-3.7.1 to /Users/xxx/.pyenv/versions/3.7.1
下記のコマンドで、標準で稼働するPythonを切り替えます。
$ pyenv global 3.7.1
$ pyenv versions
system
* 3.7.1 (set by /Users/xxx/.pyenv/version)
$ python --version
Python 3.7.1
以上でPythonのバージョン切替を行うための環境のセットアップは完了です。
Anacondaのインストール
いよいよAnacondaです。pyenv上にインストールします。
$ pyenv install anaconda3-5.3.0
Downloading Anaconda3-5.3.0-MacOSX-x86_64.sh...
-> https://repo.continuum.io/archive/Anaconda3-5.3.0-MacOSX-x86_64.sh
Installing Anaconda3-5.3.0-MacOSX-x86_64...
Installed Anaconda3-5.3.0-MacOSX-x86_64 to /Users/xxx/.pyenv/versions/anaconda3-5.3.0
$ pyenv versions
system (set by /Users/xxx/.pyenv/version)
* 3.7.1
anaconda3-5.3.0
$ pyenv global anaconda3-5.3.0
$ pyenv versions
system
3.7.1
* anaconda3-5.3.0 (set by /Users/xxx/.pyenv/version)
$
$ python --version
Python 3.7.0
Anacondaを使用できる環境の構築が完了です。
Anacondaの分離環境を構築する
通常のPythonにはプロジェクトごとに仮想環境(分離環境)を構築するための venv コマンドというのが用意されていますが、Anacondaにも同じような環境分離ツール conda がありますので、それを使って分離環境を構築します。
例として、以下のコマンドで tmpという名前をつけた Python 3.7.2のの分離環境を構築します。
$ conda create --name tmp python=3.7.2 <- バージョン指定も出来る
.....
zeromq: 4.3.1-h0a44026_3
zict: 0.1.4-py37_0
zipp: 0.3.3-py37_1
zlib: 1.2.11-h1de35cc_3
zstd: 1.3.7-h5bba6e5_0
Proceed ([y]/n)?
...
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use:
# > source activate tmp
#
# To deactivate an active environment, use:
# > source deactivate
$
分離環境が構築できました。分離環境の中に入るには下記のコマンドで。
$ source activate tmp
pyenv: activate: command not found
怒られましたorz。。パスが通ってないからっぽいので、、、
$ ls -lrt $PYENV_ROOT/versions/
drwxr-xr-x 24 xxx staff 816 4 7 19:17 anaconda3-5.3.0
$ source $PYENV_ROOT/versions/anaconda3-5.3.0/bin/activate tmp
(tmp) $
(tmp) $ python --version
Python 3.7.2
(tmp) $
分離環境に入れました。。
その他コマンド
分離環境の一覧表示
$ conda info -e
# conda environments:
#
base * /Users/xxx/.pyenv/versions/anaconda3-5.3.0
tmp /Users/xxx/.pyenv/versions/anaconda3-5.3.0/envs/tmp
$
ちなみに分離環境はpyenvからは下記のように見えるようです
$ pyenv versions
system
3.7.1
* anaconda3-5.3.0 (set by /Users/xxx/.pyenv/version)
anaconda3-5.3.0/envs/tmp
中に入ってみてみると、、、
$ source /Users/xxx/.pyenv/versions/anaconda3-5.3.0/bin/activate tmp
(tmp) $ pyenv versions
system
3.7.3
* anaconda3-5.3.0 (set by /Users/xxx/.pyenv/version)
anaconda3-5.3.0/envs/tmp
(tmp) $ conda info -e
# conda environments:
#
base /Users/xxx/.pyenv/versions/anaconda3-5.3.0
tmp * /Users/xxx/.pyenv/versions/anaconda3-5.3.0/envs/tmp
(tmp) $
分離環境から抜けるには
(tmp) $ source $PYENV_ROOT/versions/anaconda3-5.3.0/bin/deactivate
$
分離環境の削除コマンドはこちら。
$ conda remove -n tmp --all
Remove all packages in environment /Users/xxx/.pyenv/versions/anaconda3-5.3.0/envs/tmp:
...
Proceed ([y]/n)?
$
$ pyenv versions
system
3.7.1
* anaconda3-5.3.0 (set by /Users/xxx/.pyenv/version)
$
削除されました。
Jupyter Notebook を起動
最後にJupyter Notebookを起動します。
$ jupyter notebook
[I 18:37:54.077 NotebookApp] JupyterLab extension loaded from /Users/xxx/.pyenv/versions/anaconda3-5.3.0/envs/tmp/lib/python3.7/site-packages/jupyterlab
[I 18:37:54.077 NotebookApp] JupyterLab application directory is /Users/xxx/.pyenv/versions/anaconda3-5.3.0/envs/tmp/share/jupyter/lab
[I 18:37:54.079 NotebookApp] Serving notebooks from local directory: /Users/xxx
[I 18:37:54.079 NotebookApp] The Jupyter Notebook is running at:
[I 18:37:54.079 NotebookApp] http://localhost:8888/?token=xxxxxxx
[I 18:37:54.079 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 18:37:54.086 NotebookApp]
To access the notebook, open this file in a browser:
file:///Users/xxx/Library/Jupyter/runtime/nbserver-44243-open.html
Or copy and paste one of these URLs:
http://localhost:8888/?token=xxxxxxx
起動したようです。Webブラウザで上記URLにアクセスすればよさそうですね。
停止は Ctrl C で停止可能です。
まとめ
Anaconda/JupyterNotebookを使用するために、brew > pyenv > anaconda > condaの分離環境 > Jupyter っていうそこそこややこしい構図になってしまいましたが、分離した環境を作れることで、壊れたら消してまた構築するなど、便利な環境が構築できましたね。
おつかれさまでした。
関連リンク
- Python 公式
- Homebrew 公式
- Simple Python Version Management: pyenv 公式
- Anaconda 公式
- The Jupyter 公式
- pyenvが必要かどうかフローチャート
- Pythonの環境構築と使い方(MacOS)
-
bashのヒアドキュメントを活用する .bash_profile に流し込んだら、変数が展開されて。。
'__EOF__'
を囲むのね、、、。 - 仮想環境作成モジュールvenvで作成した仮想環境をつかって、PyCharmで開発を行う
Author And Source
この問題について(MacでAnaconda/Jupyter Notebook をつかえる環境を構築する(含 Homebrew,pyenv,Pythonのインストール)), 我々は、より多くの情報をここで見つけました https://qiita.com/masatomix/items/b1a0ec216ea943c86a2a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .