본문 바로가기
IT & 데이터 사이언스/환경설정 및 기타사항들

[환경설정] Ubuntu 세팅 및 pyenv, virtualenv 설치

by 바른 호랑이 2024. 6. 18.
728x90
반응형

안녕하세요. 바른호랑이입니다.

이번 게시글에서는 ubuntu에서 python프로젝트를 진행하기 위해 필요한 세팅 및 pyenv, virtualenv를 설치하는 방법에 대해 알아볼 예정입니다.

가상환경을 통한 ubuntu설치가 궁금하신 분들은 아래 게시글을 참고하시기 바랍니다.

 

※ VMware Workstation Pro활용한 Ubuntu VM 설치 및 세팅

 

[환경설정] VMware Workstation Pro활용한 Ubuntu VM 설치 및 세팅

안녕하세요. 바른호랑이입니다.이번 게시글에서는 VMware Workstation Pro프로그램에 VM을 생성한 후 Ubuntu를 설치하고 초기세팅하는 방법에 대해 알아볼 예정입니다.해당 게시글의 내용을 이해하기

data-is-power.tistory.com

ubuntu를 설치하고 한글세팅까지 완료하셨다면 프로젝트를 진행할 기초적인 세팅은 완료가 된 상태라고 할 수 있으나 본격적인 python 프로젝트를 진행하기 위해서는 몇가지 프로그램 및 패키지를 설치해줘야 합니다. ubuntu에서 대부분의 설치는 터미널을 통해 할 수 있으며, 이를 위해서 cd, mkdir, touch, sudo apt-get 등과 같은 간단한 명령어들은 숙지하면 좋습니다.

pyenv와 virtualenv를 간단하게 설명하면 일종의 파이썬 가상환경을 만들어 해당 가상환경에 필요한 패키지들을 분리하여 설치함으로써 버전호환성 문제를 해결하고 이식성을 증대시키기 위해 사용하는 패키지라고 생각하시면 되겠습니다. requirements.txt를 활용하여 특정 서버의 환경을 다른 서버로 이식할 수 있습니다. 다만, 이번에는 이와 같은 개념들을 구체적으로 알아보기보다는 환경설정이 어떻게 진행되는지에 대해 초점을 맞춰 진행할 예정이며, 세부적인 설치 진행사항은 아래와 같습니다.

 

0. Ubuntu를 켠 후 터미널을 실행

1. git 설치하기: git은 버전관리를 위해 사용하는 버전관리 툴이며, github와 연동하여 코드를 온라인상에 올려 관리할 수 있는 패키지로 설치가 필요합니다. git에 대한 세부적인 내용이 궁금하신 분들은 아래 사이트에 들어가 내용을 확인하시면 되겠습니다.

※ git 관련 참고 사이트

 

Git - Book

 

git-scm.com

2. curl 설치

3. pyenv 설치

- 간단한 pyenv 사용법

pyenv install 버전명: 해당 파이썬 버전 설치

pyenv versions: 현재 설치된 python 버전 확인

pyenv global 버전: 해당 버전을 global로 선언

pyenv local 버전: 해당 버전을 local로 선언

pyenv vitrualenv (버전) 폴더명: 해당 폴더에 해당 버전을 default 파이썬으로 설정하여 가상환경 생성

pyenv activate 가상환경: 해당 가상환경을 실행

pyenv deactivate: 가상환경 실행 종료

 

+ pyenv는 global, local, shell 각 위치에 python 버전을 구분해서 사용하는 것이 가능며, shell > local > global > system 우선순위로 적용됨. 예를 들어 python 3.8 버전을 global로 설정하고 특정 디렉토리에서 python 3.10을 local로 설정할 경우 local에 설정한 python 3.10을 우선 인식함. system의 경우 OS에 기본으로 설치되어 있는 python임.
shell은 pyenv shell (경로)를 통해 해당 가상환경에 접근하여 해당 경로의 default python 버전을 사용하거나 pyenv shell (버전)을 통해 특정 python 버전을 사용하는 것이 가능함. pyenv shell --unset으로 나올 수 있음.

local은 특정 폴더에 들어가서 pyenv local (버전)을 통해 선언 가능하며, 해당 폴더에 .python-version파일이 생김.

global은 $(pyenv root)/version 파일에 입력된 값으로 해당 파일이 없는 경우 system dafault python을 사용함.

pyenv activate 가상환경명이라는 명령어를 통해 바로 접근가능(가상환경 명칭은 같은 이름을 2번 이상 사용할 수 없음.)

 

+ pyenv-virtualenv 개념과 사용이유
pyenv-virtualenv를 사용하면 pyenv로 설치한 python 버전의 가상환경을 사용할 수 있도록 해주며, pyenv install 명령어로 python 3.8 버전을 설치했을 경우 python 3.8버전에 대한 가상환경을 각 프로젝트 별로 여러 개 생성하여 패키지 충돌을 막을 수 있음.

global 선언은 global 3.12.4 3.9.4 와 같이 여러개를 설정할 수 있으나 가장 앞에 있는 버전이 default로 선언됨.

만약에 django를 사용하는 프로젝트가 3개 있다고 할 때, 개별 프로젝트마다 다른 버전을 사용해야하는 상황에서 global로 python을 사용하면 버전 충돌 이슈가 발생할 수 있기에 이식에 각 프로젝트별로 사용하는 패키지 저장 디렉토리는 별도로 관리하도록 지원하는게 필요하며, 이 때 pyenv-virtualenv를 사용할 수 있음.

4. pyenv와 virtualenv를 PATH로 등록하여 터미널을 재실행해도 사용할 수 있게 적용

(아래 코드를 홈 디렉토리 내부의 ~/.bashrc 또는 ~/.bash_profile에 입력 후 재시작)
[단, 입력해야하는 코드는 일부 달라질 수 있으며, pyenv 설치시 나오는 내용을 참고하여 입력할 것]
[~/.bashrc 또는 ~/.bashrc_profile 파일이 안보이면 ctrl+H를 누르면 숨김파일을 볼 수 있음.]

# pyenv path add
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

# pyenv-virtualenv add
eval "$(pyenv virtualenv-init -)"

5. python 설치를 위한 필요 패키지 추가 설치

    sudo apt-get update;
    sudo apt-get install make build-essential libssl-dev zlib1g-dev \
    libbz2-dev libreadline-dev libsqlite3-dev wget llvm liblzma-dev \
    libncurses-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev \
    libffi-dev python3-tk

6. pyenv에 필요한 python 버전 설치 후 가상환경 생성

7. 가상환경 내 설치된 패키지 이식를 위해 requirements.txt로 패키지 설치(프로젝트별로 상이함)
[해당 명령어 실행시에는 반드시 가상환경 접속 후 Terminal를 requirements.txt가 위치한 곳으로 이동 후 설치할 것]
[특정환경에서 requirements.txt를 생성하는 방법: pip freeze > requirements.txt]

pip install -r requirements.txt

728x90
반응형

댓글