환경설정

Homebrew 설치하기 [페이지 바로가기]

homebrew는 macOS용 패키지 관리자이다.

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Python 설치하기

install 이나 upgrade 전에는 homebrew를 최신버전으로 유지해준다.

$ brew update

pyenv 설치

pyenv는 local환경에서 python의 여러 버전을 설치할 수 있게 해준다. 즉, python 버전 관리 시스템이다.

$  brew install pyenv
  • .zshrc 파일 설정

$ echo 'eval "$(pyenv init -)"' >> ~/.zshrc
$ source ~/.zshrc
  • 설치된 파이썬 버전확인

$ pyenv versions
* system (set by /Users/jeongdaye/.pyenv/version)
  • 설치할 수 있는 python 버전확인

$ pyenv install --list
Available versions:
  2.1.3
  2.2.3
  2.3.7
  2.4
  2.4.1
  2.4.2
...
  • 특정 버전의 python 설치

$ pyenv install 3.7.2
python-build: use openssl from homebrew
python-build: use readline from homebrew
Downloading Python-3.7.2.tar.xz...
-> https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tar.xz
Installing Python-3.7.2...
python-build: use readline from homebrew
WARNING: The Python sqlite3 extension was not compiled. Missing the SQLite3 lib?
Installed Python-3.7.2 to /Users/jeongdaye/.pyenv/versions/3.7.2

이때 다음과 같은 오류가 발생할 수 있다. 아래와 같이 오류를 해결해준 후 다시 명령어를 실행하면된다.

  • global 설정

$ pyenv global 3.7.2

터미널을 종료 후 다시 시작하면 python의 version이 3.7.2로 바뀐 것을 확인할 수 있다.

$ python
Python 3.7.2 (default, Mar  4 2019, 17:24:35)
[Clang 10.0.0 (clang-1000.10.44.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

zlib 오류발생

BUILD FAILED (OS X 10.14.2 using python-build 20180424)

Inspect or clean up the working tree at /var/folders/02/dsdr2ndd5jj8p8h5vpw3_n300000gn/T/python-build.20190217200742.23725
Results logged to /var/folders/02/dsdr2ndd5jj8p8h5vpw3_n300000gn/T/python-build.20190217200742.23725.log

Last 10 log lines:
  File "/private/var/folders/02/dsdr2ndd5jj8p8h5vpw3_n300000gn/T/python-build.20190217200742.23725/Python-3.7.2/Lib/ensurepip/__main__.py", line 5, in <module>
    sys.exit(ensurepip._main())
  File "/private/var/folders/02/dsdr2ndd5jj8p8h5vpw3_n300000gn/T/python-build.20190217200742.23725/Python-3.7.2/Lib/ensurepip/__init__.py", line 204, in _main
    default_pip=args.default_pip,
  File "/private/var/folders/02/dsdr2ndd5jj8p8h5vpw3_n300000gn/T/python-build.20190217200742.23725/Python-3.7.2/Lib/ensurepip/__init__.py", line 117, in _bootstrap
    return _run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
  File "/private/var/folders/02/dsdr2ndd5jj8p8h5vpw3_n300000gn/T/python-build.20190217200742.23725/Python-3.7.2/Lib/ensurepip/__init__.py", line 27, in _run_pip
    import pip._internal
zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] Error 1
  • zlib 설치

$ brew install zlib
$ vim ~/.zshrc
# For compilers to find zlib you may need to set:
export LDFLAGS="-L/usr/local/opt/zlib/lib"
export CPPFLAGS="-I/usr/local/opt/zlib/include"

# For pkg-config to find zlib you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/zlib/lib/pkgconfig"
$ source ~/.zshrc

가상환경(Virtual Environment) 설정하기

Virtual Environment를 줄여서 virtualenv 라고한다. virtualenv 는 시스템에 설치된 파이썬에 영향을 주지 않고 파이썬의 가상 환경을 유지할 수 있도록 해준다. 가상 환경에서는 파이썬 실행파일, 라이브러리 설치 장소 등이 따로 제공되며, 이 곳에 패키지를 설치해도 시스템의 파이썬이나 다른 가상 환경에는 영향을 주지 않도록 설계되어 있다.

pyenv-virtualenv 설치

$  brew install pyenv-virtualenv
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc    
$ source ~/.zshrc

가상환경 만들기

$ pyenv virtualenv <version> <env_name>
# example
# python 3.7.2 version인 sample-env라는 이름의 가상환경 생성
# version을 생략할 경우에는 global로 설정된 버전으로 생성
$ pyenv virtualenv 3.7.2 sample-env
Looking in links: /var/folders/0z/rb_yr2g57cz833kvx98dc3y40000gn/T/tmp5gzn2iis
Requirement already satisfied: setuptools in /Users/jeongdaye/.pyenv/versions/3.7.2/envs/sample-env/lib/python3.7/site-packages (40.6.2)
Requirement already satisfied: pip in /Users/jeongdaye/.pyenv/versions/3.7.2/envs/sample-env/lib/python3.7/site-packages (18.1)

프로젝트 폴더에 가상환경 지정하기

우선 가상환경을 설정할 프로젝트에 들어간다.

$ pyenv activate <env_name>
$ pyenv local <env_name>
$ pyenv versions
 system
  3.7.2
  3.7.2/envs/sample-env
* sample-env (set by PYENV_VERSION environment variable)

위와 같이 sample-env에 *가 되어있으면 설정이 완료된 것이다.

  • 가상환경의 패키지 목록 확인

$ pip list
Package    Version
---------- -------
pip        18.1   
setuptools 40.6.2

다음과 같이 초기환경에는 pipsetuptools 만 설치되어있다.

가상환경 종료하기

$ pyenv deactivate

Django 설치하기

설치 전에 우선 pip를 최신버전으로 upgrade 해준다.

$ python -m pip install --upgrade pip
$ pip install Django==2.1.7
$ pip list
Package    Version
---------- -------
Django     2.1.7  
pip        19.0.2 
pytz       2018.9 
setuptools 40.6.2

참조 문서

Last updated