Python 은 다양한 버전의 패키지 라이브러를 사용하여 개발한다. 그렇기 때문에 똑같은 패키지라도 서로 다른 버전을 사용한 프로그램이 있을 수 있어 버전 충돌이 일어날 수 있다.
결국 각 프로그램마다 고유한 개발 환경이 필요한데 그것이 바로 Virtual Envrionment 이다. 여기서는 Mac 에 python 가상 환경을 구축하는 방법을 설명한다.
1. Python 설치
mac 에서는 brew 로 프로그램 관리를 쉽게 할 수 있는데 brew 로 설치한 python 은 향후 다른 프로그램과 연계할 때 문제가 발생할 수 있어 수동으로 설치하기 위해 이전 brew 설치한 python 은 삭제한 후 아래와 같이 수동으로 다운 받아 설치한다.
(다운로드 후 설치) https://www.python.org/ftp/python/3.9.7/python-3.9.7-macos11.pkg
설치한 python 경로에 path 를 확인하고 없으면 추가해 준다. zsh 외에 bash shell 을 사용하면 ~/.bash_profile 을 확인하면 된다.
$ vi ~/.zshrc
export PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
$ source ~/.zshrc
python 설치가 완료되면 아래와 같이 pip 을 설치한다.
$ wget https://bootstrap.pypa.io/get-pip.py
$ python3 get-pip.py
2. Python 가상 환경 프로그램 설치
python 가상 환경은 virtualenv 와 virtualenvwrapper 프로그램을 설치해서 만들 수 있다. 아래와 같이 2개의 툴을 설치한다.
$ sudo pip install virtualenv virtualenvwrapper
설치가 완료되면 ~/.zshrc 혹은 ~/.bash_profile 파일에 경로를 추가한다.
$ vi ~/.zshrc
alias python="/usr/local/bin/python3"
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/Library/Frameworks/Python.framework/Versions/3.9/bin/virtualenv
export WORKON_HOME=~/.virtualenvs
. /Library/Frameworks/Python.framework/Versions/3.9/bin/virtualenvwrapper.sh
export PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
$ source ~/.zshrc
3. 가상 환경 활용
가상 환경은 아래 명령어로 생성할 수 있다. 마지막 python 옵션은 생략 가능하며 pandas-py3.6 이라는 이름으로 생성하였다.
$ mkvirtualenv pandas-py3.6 --python=python3
venv:(pandas-py3.6) $
prompt 가 “venv:...” 로 변경되어 가상환경에 들어와 있음을 알 수 있다.
생성한 가상 환경은 아래 디렉토리에 생성되고 앞으로 pip 으로 생성한 python 패키지 파일들은 ~/.virtualenvs/pandas-py3.6 아래에 설치된다.
venv:(pandas-py3.6) $ ls -al ~/.virtualenvs
drwxr-xr-x 21 ahnsk staff 672 1 27 10:01 .
drwxr-xr-x+ 96 ahnsk staff 3072 2 10 13:13 ..
-rwxr-xr-x 1 ahnsk staff 135 11 13 2017 get_env_details
-rw-r--r-- 1 ahnsk staff 96 11 13 2017 initialize
drwxr-xr-x 8 ahnsk staff 256 1 27 10:08 pandas-py3.6
-rw-r--r-- 1 ahnsk staff 73 11 13 2017 postactivate
-rw-r--r-- 1 ahnsk staff 75 11 13 2017 postdeactivate
-rwxr-xr-x 1 ahnsk staff 66 11 13 2017 postmkproject
-rw-r--r-- 1 ahnsk staff 73 11 13 2017 postmkvirtualenv
-rwxr-xr-x 1 ahnsk staff 110 11 13 2017 postrmvirtualenv
-rwxr-xr-x 1 ahnsk staff 99 11 13 2017 preactivate
-rw-r--r-- 1 ahnsk staff 76 11 13 2017 predeactivate
-rwxr-xr-x 1 ahnsk staff 91 11 13 2017 premkproject
-rwxr-xr-x 1 ahnsk staff 130 11 13 2017 premkvirtualenv
-rwxr-xr-x 1 ahnsk staff 111 11 13 2017 prermvirtualenv
가상 환경을 벗어나려면 deactivate 명령어로 빠져 나오면 된다.
venv:(pandas-py3.6) $ deactivate
$
가상 환경 목록을 확인하려면 lsvirtualenv 명령어로 할 수 있다.
$ lsvirtualenv
pandas-py3.6
============
해당 가상 환경으로 들어가려면 workon 명령어로 할 수 있다.
$ workon pandas-py3.6
venv:(pandas-py3.6) $ python
Python 3.9.7 (v3.9.7:1016ef3790, Aug 30 2021, 16:25:35)
[Clang 12.0.5 (clang-1205.0.22.11)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>