Mac에서 Anaconda/Jupyter Notebook을 사용하는 환경 구축 (Homebrew, pyenv 및 Python 설치 포함)

파이썬 에서 데이터 분석이라면 Jupyter Notebook 이라는 브라우저의 콘솔에서 Python을 조작하는 샘플 등이 인터넷에서 나옵니다. . 이것을 실행하는 Jupyter Notebook 환경을 Mac에서 구축할 때의 순서 메모입니다.

Jupyter Notebook 은 데이터 분석, 과학 계산 등의 플랫폼인 아나콘다 에 동봉된 사물을 설치하려고 합니다.

이전 준비



Python은 Python2 시스템과 3 시스템이 있으며 Mac에는 기본적으로 2 시스템이 설치되어 있습니다. 그래서 그 환경을 파괴하지 않고 다른 버전의 Python (Python3이나 Anaconda)을 사용하려면 pyenv라는 버전 전환 도구를 사용하는 경우가 많습니다. 그리고 그 pyenv는 Mac의 패키지 관리자 인 Homebrew를 통해 설치합니다.

Homebrew 설치



참고 : h tps : // b w. sh / 그럼 x_
$ /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 --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


시작된 것 같습니다. 웹 브라우저에서 위 URL에 액세스하면 좋을 것 같습니다.


중지는 Ctrl C에서 중지할 수 있습니다.

요약



Anaconda/JupyterNotebook을 사용하기 위해, brew > pyenv > anaconda > conda의 분리 환경 > Jupyter라고 하는 거기나 까다로운 구도가 되어 버렸습니다만, 분리한 환경을 만들 수 있는 것으로, 망가지면 지워 다시 구축하는 등 , 편리한 환경을 구축할 수 있었군요.

미안해.

관련 링크



  • 파이썬 공식

  • Homebrew 공식

  • Simple Python Version Management: pyenv 공식

  • 아나콘다 공식

  • The Jupyter 공식
  • pyenv가 필요한지 순서도
  • Python 환경 구축 및 사용법(MacOS)

  • bash 히어 문서 활용하기 .bash_profile에 넣으면 변수가 확장됩니다. . '__EOF__' 를 둘러싸는군요,,,.
  • 가상 환경 생성 모듈 venv에서 만든 가상 환경을 사용하여 PyCharm에서 개발하기
  • 좋은 웹페이지 즐겨찾기