Python 환경 설정 | pyenv | Ubuntu | 우분투 파이썬
Sep 25, 2023
Ubuntu 22.04에서 Python 개발 환경 구축
Prerequisite
우분투 소프트웨어 업데이트, git 설치
git을 처음 설치하고 github를 사용하는 것이 처음이라면 추가 설정이 필요할 수도 있다.
sudo apt update && sudo apt upgrade
sudo apt install git
git
어떤 Python을 사용할까에 대한 고민
-
운영체제에 설치된 파이썬은 시스템에서 사용하기 때문에 수정할 경우 시스템 오류 발생 확률이 있으므로 기존에 운영체제에 설치된 파이썬 사용하지 않는다.
-
용량이 너무 커서 anaconda 환경은 사용하지 않고 AWS/Azure에서 소형 인스턴스에 어울리지 않기 때문에 가벼운 일반적인 파이썬 개발 환경 구축
pyenv 설치
https://github.com/pyenv/pyenv 의 설정 방법을 토대로 pyenv를 설치한다.
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
왜? pyenv를 사용할까?
-
시스템에 설치된 파이썬 버전과 상관없이 사용하고 싶은 파이썬을 선택해서 사용 가능
-
시스템에 설치된 파이썬에 오류를 발생시키지 않음
~/.bashrc
에 pyenv 설치 후 설정
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
~/.profile
에 다음을 추가
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
echo 'eval "$(pyenv init -)"' >> ~/.profile
Logout 하고, 다시 Login 하면 pyenv가 설정된 상태로 시작한다.
- pyenv라고 명령어를 쳐 보았을 때 메뉴얼 같은 내용이 나오면 세팅이 잘 된 것이다.
우분투에 dependancy 패키지들을 설치하고 나서 특정 버젼의 python을 설치한다. pyenv install --list
명령어로 설치 가능한 버젼 전체를 확인 할 수 있다.
pyenv
sudo apt install build-essential libssl-dev libffi-dev python3-dev libbz2-dev libsqlite3-dev libreadline-dev python3-tk python-tk tk-dev liblzma-dev
pyenv install 3.11.5
Downloading Python-3.11.5.tar.xz...
-> https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tar.xz
Installing Python-3.11.5...
Installed Python-3.11.5 to /home/user/.pyenv/versions/3.11.5
-
pyenv versions
명령어로 설치한 파이썬을 확인한다. -
메인으로 사용할 파이썬 버젼을 global 인수로써 지정한다. 기본 파이썬의 시스템 버젼으로 돌아가려면
pyenv global system
을 실행하면 된다.
pyenv rehash
pyenv global 3.11.5
python
Python 3.11.5 (main, Sep 19 2023, 11:00:32) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
가상 환경과 venv 모듈
가상 환경으로 또 버젼 격리
Python에서는 일반적으로 프로젝트 별로 독립된 개발 환경을 구성하기 위해서 가상 환경 (virtual environment)을 이용한다. venv
라는 내장 모듈을 통해서 쉽게 가상 환경을 만들 수 있으며 이를 통해 프로젝트 간 의존성 충돌 문제를 효과적으로 예방할 수 있다.
Python에서 가상 환경(virtual environment)은 하나의 컴퓨터에서 프로젝트 별로 독룁된 파이썬 실행 환경(runtime)을 구성할 수 있도록 해준다. 가상 환경을 사용하지 않으면 컴퓨터 내의 모든 프로젝트에서 하나의 파이썬 실행 환경을 사용하면서 동일한 경로에 외부 패키지를 설치하고 서로 공유하게 된다. 이럴 경우, 하나의 프로젝트에서 설치한 패키지의 버전이 다른 프로젝트에서 설치한 동일 패키지의 다른 버전과 충동을 일으킬 소지가 생기기 때문에, 일반적으로 파이썬 프로젝트 별로 독립된 가상 환경을 구성하여 사용하는 것이 권장된다.
cd <프로젝트 디렉터리>
python -m venv .venv
ls -a
가상 환경을 구성할 프로젝트 디렉터리에 들어가서 가상환경 생성 커맨드로 .venv라는 디렉터리를 생성한다.
. .. .venv
가상 환경을 굳이 Git과 같은 소스 버전 관리 시스템에 올릴 필요는 없으므로 .venv 디렉터리를 .gitignore 파일에 추가한다.
echo '.venv' >> .gitignore
가상 환경 활성화
가상 환경을 활성화 하기 위해 .venv
디렉토리 안에 있는 스크립트를 실행한다.
source .venv/bin/activate
또는
. .venv/bin/activate
쉘 프롬프트 앞에 (.venv)라고 붙으면서 가상 환경이 활성화 된다.
$ source .venv/bin/activate
(.venv) $
(.venv) $ which python
/home/joy/py/initial/.venv/bin/python