[python] 파이썬 개발환경 구축
맥북에 파이썬 개발환경 구축
맥북 프로에 아나콘다3 설치하기.
How to install Anaconda on macOS.
현재 운영 체재 : Macbook Pro, macOS Mojave, version 10.14.3
설명
파이썬 홈페이지에가서 파이썬을 설치해도 되지만 아나콘다를 설치하면 가상환경을 설정 할 수도 있고 다수의 유용한 파이썬 패키지를 쓸 수 있어서 바로 아나콘다를 설치한다.아나콘다 다운로드 사이트
https://www.anaconda.com/distribution/아나콘다 3.7버전 다운로드
Python Anaconda 3.7버전 2018.12 ( Anaconda3-2018.12-MacOSX-x86_64.pkg )설치시 어려움은 없다. Yes맨이 되면 설치 완료.
공식 영문 홈페이지
https://docs.anaconda.com/anaconda/install/mac-os/
맥북 프로에 파이썬 개발환경 설정하기.
Setting up python development environment on macOS
현재 운영 체재 : Macbook Pro, macOS Mojave, version 10.14.3
- 터미널 실행
$ KANGs-MacBook-Pro ~ $ cd ~ ↳ cd ~ : 최상위 폴더로 이동
- pip 최신버전 업데이트
$ KANGs-MacBook-Pro ~ $ pip install --upgrade pip Collecting pip Downloading https://files.pythonhosted.org/packages/d7/41/34dd96bd33958e52cb4da2f1bf0818e396514fd4f4725a79199564cd0c20/pip-19.0.2-py2.py3-none-any.whl (1.4MB) 100% |████████████████████████████████| 1.4MB 11.6MB/s Installing collected packages: pip Found existing installation: pip 18.1 Uninstalling pip-18.1: Successfully uninstalled pip-18.1 Successfully installed pip-19.0.2 <br>
- 현재 개발환경(base)은 python 3.7버전인데
나중에 사용할 tensorflow는 python 버전 3.6까지만 지원(2019.02 기준).
따라서 python 3.6 버전을 가지고 가상환경을 하나 생성.
여기서 ‘data_env’는 내가 원하는 가상환경 이름이므로 사용자가 원하는 이름으로 정할 수 있다.$ KANGs-MacBook-Pro ~ $ conda create -n data_env python=3.6 Solving environment: done ==> WARNING: A newer version of conda exists. <== current version: 4.5.12 latest version: 4.6.3 Please update conda by running $ conda update -n base -c defaults conda *## Package Plan ## environment location: /anaconda3/envs/data_env added / updated specs: - python=3.6 The following packages will be downloaded: package | build ---------------------------|----------------- ca-certificates-2019.1.23 | 0 126 KB python-3.6.8 | haf84260_0 20.5 MB certifi-2018.11.29 | py36_0 146 KB setuptools-40.7.3 | py36_0 619 KB pip-19.0.1 | py36_0 1.9 MB libedit-3.1.20181209 | hb402a30_0 159 KB wheel-0.32.3 | py36_0 35 KB ------------------------------------------------------------ Total: 23.5 MB The following NEW packages will be INSTALLED: ca-certificates: 2019.1.23-0 certifi: 2018.11.29-py36_0 libcxx: 4.0.1-hcfea43d_1 libcxxabi: 4.0.1-hcfea43d_1 libedit: 3.1.20181209-hb402a30_0 libffi: 3.2.1-h475c297_4 ncurses: 6.1-h0a44026_1 openssl: 1.1.1a-h1de35cc_0 pip: 19.0.1-py36_0 python: 3.6.8-haf84260_0 readline: 7.0-h1de35cc_5 setuptools: 40.7.3-py36_0 sqlite: 3.26.0-ha441bb4_0 tk: 8.6.8-ha441bb4_0 wheel: 0.32.3-py36_0 xz: 5.2.4-h1de35cc_4 zlib: 1.2.11-h1de35cc_3 Proceed ([y]/n)? y ↳ 설치를 원할 시 y 버튼을 클릭하고 엔터! Downloading and Extracting Packages ca-certificates-2019 | 126 KB | ##################################### | 100% python-3.6.8 | 20.5 MB | ##################################### | 100% certifi-2018.11.29 | 146 KB | ##################################### | 100% setuptools-40.7.3 | 619 KB | ##################################### | 100% pip-19.0.1 | 1.9 MB | ##################################### | 100% libedit-3.1.20181209 | 159 KB | ##################################### | 100% wheel-0.32.3 | 35 KB | ##################################### | 100% Preparing transaction: done Verifying transaction: done Executing transaction: done # # To activate this environment, use # # $ conda activate data_env # # To deactivate an active environment, use # # $ conda deactivate
- 현재 시스템 내 가상 환경 정보
$ KANGs-MacBook-Pro ~ $ conda info --envs # conda environments: # base * /anaconda3 data_env /anaconda3/envs/data_env
- 사용할 가상환경으로 전환
$ KANGs-MacBook-Pro ~ $ source activate data_env
- 주피터 노트북에서 가상환경을 선택할 수 있도록 nb_conda를 설치
$ KANGs-MacBook-Pro ~ $ conda install -c anaconda nb_conda Solving environment: done ==> WARNING: A newer version of conda exists. <== current version: 4.5.12 latest version: 4.6.3 Please update conda by running $ conda update -n base -c defaults conda ## Package Plan ## environment location: /anaconda3/envs/data_env added / updated specs: - nb_conda The following packages will be downloaded: package | build ---------------------------|----------------- ptyprocess-0.6.0 | py36_0 23 KB anaconda testpath-0.4.2 | py36_0 91 KB anaconda prompt_toolkit-2.0.8 | py_0 222 KB anaconda ipython_genutils-0.2.0 | py36h241746c_0 39 KB anaconda appnope-0.1.0 | py36hf537a9a_0 8 KB anaconda decorator-4.3.2 | py36_0 17 KB anaconda jedi-0.13.2 | py36_0 228 KB anaconda jupyter_core-4.4.0 | py36_0 63 KB anaconda terminado-0.8.1 | py36_1 21 KB anaconda ipython-7.2.0 | py36h39e3cac_0 1.0 MB anaconda pandoc-2.2.3.2 | 0 13.8 MB anaconda nbconvert-5.3.1 | py36_0 405 KB anaconda wcwidth-0.1.7 | py36h8c6ec74_0 25 KB anaconda certifi-2018.11.29 | py36_0 146 KB anaconda notebook-5.7.4 | py36_0 7.3 MB anaconda pandocfilters-1.4.2 | py36_1 13 KB anaconda ipykernel-5.1.0 | py36h39e3cac_0 156 KB anaconda entrypoints-0.3 | py36_0 12 KB anaconda jsonschema-2.6.0 | py36hb385e00_0 62 KB anaconda parso-0.3.2 | py36_0 119 KB anaconda jupyter_client-5.2.4 | py36_0 127 KB anaconda ca-certificates-2019.1.23 | 0 126 KB anaconda six-1.12.0 | py36_0 22 KB anaconda jinja2-2.10 | py36_0 184 KB anaconda prometheus_client-0.5.0 | py36_0 67 KB anaconda mistune-0.8.4 | py36h1de35cc_0 54 KB anaconda pyzmq-17.1.2 | py36h0a44026_2 433 KB anaconda libsodium-1.0.16 | h3efe00b_0 324 KB anaconda pexpect-4.6.0 | py36_0 77 KB anaconda nb_conda-2.2.1 | py36_0 33 KB anaconda send2trash-1.5.0 | py36_0 16 KB anaconda openssl-1.1.1 | h1de35cc_0 4.6 MB anaconda zeromq-4.3.1 | h0a44026_3 565 KB anaconda tornado-5.1.1 | py36h1de35cc_0 662 KB anaconda nb_conda_kernels-2.2.0 | py36_0 32 KB anaconda backcall-0.1.0 | py36_0 19 KB anaconda python-dateutil-2.7.5 | py36_0 275 KB anaconda pygments-2.3.1 | py36_0 1.4 MB anaconda nbformat-4.4.0 | py36h827af21_0 138 KB anaconda markupsafe-1.1.0 | py36h1de35cc_0 25 KB anaconda pickleshare-0.7.5 | py36_0 12 KB anaconda webencodings-0.5.1 | py36_1 19 KB anaconda bleach-3.1.0 | py36_0 224 KB anaconda traitlets-4.3.2 | py36h65bd3ce_0 131 KB anaconda ------------------------------------------------------------ Total: 33.1 MB The following NEW packages will be INSTALLED: appnope: 0.1.0-py36hf537a9a_0 anaconda backcall: 0.1.0-py36_0 anaconda bleach: 3.1.0-py36_0 anaconda decorator: 4.3.2-py36_0 anaconda entrypoints: 0.3-py36_0 anaconda ipykernel: 5.1.0-py36h39e3cac_0 anaconda ipython: 7.2.0-py36h39e3cac_0 anaconda ipython_genutils: 0.2.0-py36h241746c_0 anaconda jedi: 0.13.2-py36_0 anaconda jinja2: 2.10-py36_0 anaconda jsonschema: 2.6.0-py36hb385e00_0 anaconda jupyter_client: 5.2.4-py36_0 anaconda jupyter_core: 4.4.0-py36_0 anaconda libsodium: 1.0.16-h3efe00b_0 anaconda markupsafe: 1.1.0-py36h1de35cc_0 anaconda mistune: 0.8.4-py36h1de35cc_0 anaconda nb_conda: 2.2.1-py36_0 anaconda nb_conda_kernels: 2.2.0-py36_0 anaconda nbconvert: 5.3.1-py36_0 anaconda nbformat: 4.4.0-py36h827af21_0 anaconda notebook: 5.7.4-py36_0 anaconda pandoc: 2.2.3.2-0 anaconda pandocfilters: 1.4.2-py36_1 anaconda parso: 0.3.2-py36_0 anaconda pexpect: 4.6.0-py36_0 anaconda pickleshare: 0.7.5-py36_0 anaconda prometheus_client: 0.5.0-py36_0 anaconda prompt_toolkit: 2.0.8-py_0 anaconda ptyprocess: 0.6.0-py36_0 anaconda pygments: 2.3.1-py36_0 anaconda python-dateutil: 2.7.5-py36_0 anaconda pyzmq: 17.1.2-py36h0a44026_2 anaconda send2trash: 1.5.0-py36_0 anaconda six: 1.12.0-py36_0 anaconda terminado: 0.8.1-py36_1 anaconda testpath: 0.4.2-py36_0 anaconda tornado: 5.1.1-py36h1de35cc_0 anaconda traitlets: 4.3.2-py36h65bd3ce_0 anaconda wcwidth: 0.1.7-py36h8c6ec74_0 anaconda webencodings: 0.5.1-py36_1 anaconda zeromq: 4.3.1-h0a44026_3 anaconda The following packages will be UPDATED: ca-certificates: 2019.1.23-0 --> 2019.1.23-0 anaconda certifi: 2018.11.29-py36_0 --> 2018.11.29-py36_0 anaconda openssl: 1.1.1a-h1de35cc_0 --> 1.1.1-h1de35cc_0 anaconda Proceed ([y]/n)? y ↳ 설치를 원할 시 y 버튼을 클릭하고 엔터! Downloading and Extracting Packages ptyprocess-0.6.0 | 23 KB | ##################################### | 100% testpath-0.4.2 | 91 KB | ##################################### | 100% prompt_toolkit-2.0.8 | 222 KB | ##################################### | 100% ipython_genutils-0.2 | 39 KB | ##################################### | 100% appnope-0.1.0 | 8 KB | ##################################### | 100% decorator-4.3.2 | 17 KB | ##################################### | 100% jedi-0.13.2 | 228 KB | ##################################### | 100% jupyter_core-4.4.0 | 63 KB | ##################################### | 100% terminado-0.8.1 | 21 KB | ##################################### | 100% ipython-7.2.0 | 1.0 MB | ##################################### | 100% pandoc-2.2.3.2 | 13.8 MB | ##################################### | 100% nbconvert-5.3.1 | 405 KB | ##################################### | 100% wcwidth-0.1.7 | 25 KB | ##################################### | 100% certifi-2018.11.29 | 146 KB | ##################################### | 100% notebook-5.7.4 | 7.3 MB | ##################################### | 100% pandocfilters-1.4.2 | 13 KB | ##################################### | 100% ipykernel-5.1.0 | 156 KB | ##################################### | 100% entrypoints-0.3 | 12 KB | ##################################### | 100% jsonschema-2.6.0 | 62 KB | ##################################### | 100% parso-0.3.2 | 119 KB | ##################################### | 100% jupyter_client-5.2.4 | 127 KB | ##################################### | 100% ca-certificates-2019 | 126 KB | ##################################### | 100% six-1.12.0 | 22 KB | ##################################### | 100% jinja2-2.10 | 184 KB | ##################################### | 100% prometheus_client-0. | 67 KB | ##################################### | 100% mistune-0.8.4 | 54 KB | ##################################### | 100% pyzmq-17.1.2 | 433 KB | ##################################### | 100% libsodium-1.0.16 | 324 KB | ##################################### | 100% pexpect-4.6.0 | 77 KB | ##################################### | 100% nb_conda-2.2.1 | 33 KB | ##################################### | 100% send2trash-1.5.0 | 16 KB | ##################################### | 100% openssl-1.1.1 | 4.6 MB | ##################################### | 100% zeromq-4.3.1 | 565 KB | ##################################### | 100% tornado-5.1.1 | 662 KB | ##################################### | 100% nb_conda_kernels-2.2 | 32 KB | ##################################### | 100% backcall-0.1.0 | 19 KB | ##################################### | 100% python-dateutil-2.7. | 275 KB | ##################################### | 100% pygments-2.3.1 | 1.4 MB | ##################################### | 100% nbformat-4.4.0 | 138 KB | ##################################### | 100% markupsafe-1.1.0 | 25 KB | ##################################### | 100% pickleshare-0.7.5 | 12 KB | ##################################### | 100% webencodings-0.5.1 | 19 KB | ##################################### | 100% bleach-3.1.0 | 224 KB | ##################################### | 100% traitlets-4.3.2 | 131 KB | ##################################### | 100% Preparing transaction: done Verifying transaction: done Executing transaction: / + /anaconda3/envs/data_env/bin/python -m nb_conda_kernels.install --enable Enabling nb_conda_kernels... Status: enabled \ + /anaconda3/envs/data_env/bin/jupyter-nbextension enable nb_conda --py --sys-prefix Enabling notebook extension nb_conda/main... - Validating: OK Enabling tree extension nb_conda/tree... - Validating: OK + /anaconda3/envs/data_env/bin/jupyter-serverextension enable nb_conda --py --sys-prefix Enabling: nb_conda - Writing config: /anaconda3/envs/data_env/etc/jupyter - Validating... nb_conda 2.2.1 OK done
- 파이썬 3.6버전을 설치했기 때문에 수동으로 ipykernel에 우리의 가상환경을 등록해줘야 한다.
$ (data_env) KANGs-MacBook-Pro ~ $ python -m ipykernel install --user --name data_env Installed kernelspec data_env in /Users/kang/Library/Jupyter/kernels/data_env ↳ data_env : 내가 원하는 가상환경 이름이므로 사용자가 원하는 이름으로 정할 수 있다.
- jupyter notebook 첫 실행
$ (data_env) KANGs-MacBook-Pro ~ $ jupyter notebook [I 10:19:22.618 NotebookApp] [nb_conda_kernels] enabled, 1 kernels found [I 10:19:22.635 NotebookApp] Writing notebook server cookie secret to /Users/kang/Library/Jupyter/runtime/notebook_cookie_secret [I 10:19:22.879 NotebookApp] [nb_conda] enabled [I 10:19:22.879 NotebookApp] Serving notebooks from local directory: /Users/kang [I 10:19:22.879 NotebookApp] The Jupyter Notebook is running at: [I 10:19:22.879 NotebookApp] http://localhost:8888/?token=13c5f69c269d21bbd6b859c7f9a90eff199278b039b6cbc0 [I 10:19:22.879 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [C 10:19:22.885 NotebookApp] To access the notebook, open this file in a browser: file:///Users/kang/Library/Jupyter/runtime/nbserver-3767-open.html Or copy and paste one of these URLs: http://localhost:8888/?token=13c5f69c269d21bbd6b859c7f9a90eff199278b039b6cbc0 ^C[I 10:19:33.215 NotebookApp] interrupted Serving notebooks from local directory: /Users/kang 0 active kernels The Jupyter Notebook is running at: http://localhost:8888/?token=13c5f69c269d21bbd6b859c7f9a90eff199278b039b6cbc0 ↳ 주피터 노트북 실행 ↳ control + 엔터 빵! 하면 아래와 같음 Shutdown this notebook server (y/[n])? y ↳ jupyter notebook 종료를 원하면 y [C 10:19:37.667 NotebookApp] Shutdown confirmed [I 10:19:37.668 NotebookApp] Shutting down 0 kernels
- jupyter notebook 환경설정 파일 생성
$ (data_env) KANGs-MacBook-Pro ~ $ jupyter notebook --generate-config Writing default config to: /Users/kang/.jupyter/jupyter_notebook_config.py
- jupyter notebook 환경설정 파일 수정(메모장으로 파일 열기)
Users/kang/.jupyter/jupyter_notebook_config.py ↳ .jupyter 파일이 보이지 않을 시 숨김파일 보기 버튼을 클릭( shift + command + , )
- 환경설정 파일 중간쯤? 아래와 같은 내용 수정
$ (기존) ## The directory to use for notebooks and kernels. #c.NotebookApp.notebook_dir = '' $ (수정) ## The directory to use for notebooks and kernels. c.NotebookApp.notebook_dir = '/Users/kang/Documents/Python/python_ML' ↳ c.앞에 # 주석 제거 ↳ jupyter notebook이 실행할 경로 설정 ↳ 설정한 경로에 가서 새폴더 생성
- 모든 환경 설정이 끝났으므로 jupyter notebook 사용이 가능하다.
- 터미널 실행 - jupyter notebook 실행
$ Last login: Sat Mar 23 22:25:59 on ttys000 $ KANGs-MacBook-Pro ~ $ source activate data_env $ (data_env) KANGs-MacBook-Pro ~ $ jupyter notebook [I 22:30:23.935 NotebookApp] [nb_conda_kernels] enabled, 1 kernels found [I 22:30:24.520 NotebookApp] [nb_conda] enabled [I 22:30:24.520 NotebookApp] Serving notebooks from local directory: /Users/kang/Documents/Python/python_ML [I 22:30:24.521 NotebookApp] The Jupyter Notebook is running at: [I 22:30:24.521 NotebookApp] http://localhost:8888/?token=45d9dca46413f11cfa585b82fa6ea873a9f4b85a175aa98d [I 22:30:24.521 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [C 22:30:24.527 NotebookApp] To access the notebook, open this file in a browser: file:///Users/kang/Library/Jupyter/runtime/nbserver-6335-open.html Or copy and paste one of these URLs: http://localhost:8888/?token=45d9dca46413f11cfa585b82fa6ea873a9f4b85a175aa98d
- 끝!
References
개발자님들 덕분에 많이 배울 수 있었습니다. 감사의 말씀 드립니다.