본문 바로가기
Study/Development

Python 3 설치 및 가상환경 구축

by SeulKom 2022. 3. 18.

본 문서에서는 시스템에 설치되어 있는 Python은 그대로 두고 Python3 를 가상환경으로 구축하는 방법에 대해 소개하고자 합니다.

  • 시스템에 설치되어 있는 것을 건드리다 보면 문제가 발생했을 시 롤백하기가 어렵기 때문에, 가상환경을 사용하는 것을 적극 권장합니다
  • 또한, 가상환경을 사용하면, 여러 버전을 동시에 관리할 수 있으므로 프로젝트에 맞게 구분하여 관리할 수 있습니다

여러 OS 중 CentOS에서 설치 방법 입니다. 약간씩 차이가 날 수 있으니 설치 환경에 맞지 않거나 잘못된 경우 공유 부탁드립니다.

 

Requirements

yum 패키지 설치

sudo yum -y install gcc gcc-c++ kernel-devel
sudo yum -y install openssl-devel zlib zlib-devel bzip2-devel libffi-devel libxslt-devel python-devel cyrus-sasl-devel mysql-devel
sudo yum -y install cyrus-sasl-md5 cyrus-sasl-plain cyrus-sasl-gssapi
sudo yum -y install https://repo.ius.io/ius-release-el7.rpm epel-release

Pyenv 설치

pyenv를 통해 파이썬을 버전별로 설치할 수 있습니다.

 

 

pyenv는 최근 설치된 git 버전이 너무 낮은 경우, dependency로 인해 설치가 안되는 경우가 있습니다.

그럴 경우, 아래 방법으로 git을 설치 후 진행하시면 됩니다.

# git 버전이 old 해서 pyenv update시 git option을 인식하지 못하는 경우
sudo yum remove git
sudo yum -y install https://packages.endpoint.com/rhel/7/os/x86_64/endpoint-repo-1.9-1.x86_64.rpm
sudo yum install git

위 내용이 필요없다면, pyenv 설치 바로 진행

# pyenv download 및 install
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

pyenv - bash_profile 에 추가

~/.bash_profile

export PYENV_ROOT="/{계정HOME}/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"

Python 설치

  • pyenv global / local 은 사용자 상황에 맞게 선택해서 실행하시면 됩니다.
pyenv update
pyenv install 3.8.11 	# 설치할 버전
pyenv global 3.8.11  	# 시스템 전역에 default 버전으로 적용
pyenv local 3.8.11	# 현재 directory에 버전 설정

만약 다른 버전을 설치하고자 한다면 아래처럼 확인하시면 됩니다.

pyenv update  		# pyenv 에서 설치가능한 python 버전 리스트 가져오기
pyenv install -l 	# 설치가능한 python 버전 리스트 출력

 

Python 가상환경 설치

pyenv를 통해 여러 버전을 설치했다면, 같은 파이썬 버전을 사용하면서 A라는 프로젝트와 B라는 프로젝트를 다른 패키지 버전으로 구분하고자 하는 필요가 생깁니다.

 

이를 위해 virtualenv 라는 가상환경 관리 패키지를 설치합니다.

pip install --upgrade pip
pip install virtualenv

가상환경 적용

cd ~
virtualenv test1 		# test1 이라는 가상환경 생성
source ~/test1/bin/activate 	# test1 가상환경 적용

가상환경 해제

가상환경을 해제하고 싶은 경우, shell 에서 그냥 아래 command 를 실행하시면 됩니다

deactivate