Launguage

Python 가상환경 설정(WSL2 Ubuntu)

Somaz 2023. 10. 10. 23:48
728x90
반응형

Overview

이 글에서는 WSL2 기반 Ubuntu 환경에서 Python 개발을 위한 가상환경 설정 방법을 정리한다.
Python 프로젝트를 운영하다 보면 Python 버전이 다르거나, 프로젝트마다 패키지 구성이 다른 경우가 많다.

 

이를 해결하기 위해 pyenvvirtualenv를 활용하여 원하는 Python 버전을 설치하고, 각기 다른 가상환경을 생성하는 과정을 단계별로 설명한다.

 

 

주요 흐름은 다음과 같다.

  • Ubuntu 환경에서 pyenv를 통한 Python 버전 설치
  • virtualenv를 통한 Python 2/3 가상환경 생성
  • WSL2 환경에 맞는 경로, 설정, 디버깅 팁 제공

 

특히 Python 2와 3을 동시에 사용하는 경우에도 각각의 가상환경을 설정하여 충돌 없이 개발할 수 있도록 구성한다.

 

 

출처 : https://github.com/pyenv/pyenv

 

 

 

 

📅 관련 글

2023.04.26 - [유용한 IT Tool] - WSL 2 Docker 설치 방법

 

 

 

 

 


 

 

 

 

 

Python 가상환경 설정

 

 

ubuntu 버전 확인

lsb_release -a
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.6 LTS
Release:        20.04
Codename:       focal

 

 

 

Dependency 설치(Ubuntu/Debian)

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

 

 

 

pyenv 설치 및 Python 버전 구성

 

 

pyenv 설치

# pyenv 설치가능 버전확인
pyenv install --list

# pyenv 설치
curl https://pyenv.run | bash
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
source ~/.bashrc

# python 버전확인
python3
Python 3.8.10 (default, May 26 2023, 14:05:08)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

python2
Python 2.7.18 (default, Jul  1 2022, 12:27:04)
[GCC 9.4.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

 

 

 

Python 버전 구성

# python version 셋팅
pyenv global 3.8.10 2.7.18
pyenv: version `3.8.10' not installed

# error 발생 시 설치
pyenv install 3.8.10
pyenv install 2.7.18

# python version 셋팅
pyenv global 3.8.10 2.7.18

 

 

 

 


 

 

 

 

 

 

가상환경 설정

  • python2
  • python3

 

 

pip version 확인

pip2 --version
pip 20.3.4 from /home/somaz/.pyenv/versions/2.7.18/lib/python2.7/site-packages/pip (python 2.7)

pip3 --version
pip 21.1.1 from /home/somaz/.pyenv/versions/3.8.10/lib/python3.8/site-packages/pip (python 3.8)

 

 

 

virtualenv 설치

sudo apt install virtualenv

 

 

 

가상환경 설정(python2)

virtualenv -p $(pyenv which python2) somaz
created virtual environment CPython2.7.18.final.0-64 in 148ms
  creator CPython2Posix(dest=/home/somaz/somaz, clear=False, global=False)
  seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, pkg_resources=latest, via=copy, app_data_dir=/home/somaz/.local/share/virtualenv/seed-app-data/v1.0.1.debian.1)
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator

# activate
source somaz/bin/activate

# deactivate
(somaz) somaz@BOOK-CRMT0FFGUS:~$ deactivate

 

 

 

가상환경 설정(python3)

virtualenv -p $(pyenv which python3) somaz
created virtual environment CPython3.8.10.final.0-64 in 182ms
  creator CPython3Posix(dest=/home/somaz/somaz, clear=False, global=False)
  seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, pkg_resources=latest, via=copy, app_data_dir=/home/somaz/.local/share/virtualenv/seed-app-data/v1.0.1.debian.1)
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

# activate
source somaz/bin/activate

# deactivate
(somaz) somaz@BOOK-CRMT0FFGUS:~$ deactivate

 

 

 

 

 

 


 

 

 

 

 

마무리

WSL2 기반 Ubuntu 환경에서 Python 개발 환경을 설정하는 것은 효율적인 개발 워크플로우의 출발점이다.
이번 글에서는 pyenvvirtualenv를 이용해 Python 2.7과 3.8을 자유롭게 전환하고 독립적인 가상환경을 생성하는 방법을 정리했다.

 

이를 통해 프로젝트별로 의존성과 버전을 격리할 수 있어 안정적인 개발 환경을 유지할 수 있다.

특히 서버 개발, 데이터 분석, 머신러닝 프로젝트 등 Python을 중심으로 하는 다양한 개발 환경에서 이 설정법은 큰 도움이 된다.


향후에는 `pyenv-virtualenv, pipenv, poetry` 와 같은 도구도 함께 비교하여 활용하면 더욱 강력한 Python 개발 생태계를 구축할 수 있다.

하나의 시스템, 다수의 Python 프로젝트. pyenv + virtualenv 조합이면 문제없다.

 

 

 

 

 

 

 

 


Reference

https://github.com/pyenv/pyenv

https://jinmay.github.io/2019/03/16/linux/ubuntu-install-pyenv-1/

https://eyeballs.tistory.com/571

728x90
반응형