728x90
개요
Python 프로젝트를 진행할 때, 프로젝트별로 독립적인 환경을 유지하기 위해 가상환경을 사용하는 것이 좋습니다. 이 글에서는 pyenv, virtualenv와 다양한 가상환경 관리 도구를 사용하여 Python 가상환경을 설정하는 과정을 정리합니다
1. venv
- Python에 내장되어 있는 가상환경 도구입니다.
- PyCharm에서 기본적으로 내장되어 있는 가상환경이기도 합니다.
- 사용 방법 :
# python -m venv {가상환경폴더명}
# source {가상환경폴더명}/bin/activate
{가상환경폴더명}\Scripts\activate # Windows
2. pyenv
pyenv는 원하는 Python 버전을 쉽게 설치하고 관리할 수 있는 도구입니다. pyenv-virtualenv 플러그인을 통해 가상환경도 간편히 생성할 수 있습니다.
2.1 설치
- pyenv 설치
- pyenv-virtualenv 설치
# git clone https://github.com/pyenv/pyenv.git ~/.pyenv
# git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
2.2 환경 변수 설정
# echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
# echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
# echo 'eval "$(pyenv init - bash)"' >> ~/.bashrc
# echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
# source ~/.bashrc
2.3 가상환경 생성
# pyenv install -v 3.8.0
# pyenv virtualenv 3.8.0 venv3.8.0
# pyenv activate venv3.8.0
2.4 가상환경 비활성화
# pyenv deactivate
3. virtualenv
virtualenv는 Python 가상환경을 생성하는 또 다른 도구입니다. Python 버전과 독립적으로 사용할 수 있습니다.
3.1 설치
- 원하는 파이썬 환경을 불러온 후 pip 명령어를 통하여 설치합니다.
# source /APP/enhpc/profile.d/python-v3.11.1
# pip install virtualenv
3-2 가상환경 생성 및 활성화
# python -m virtualenv {가상환경폴더명}
# source {가상환경폴더명}/bin/activate
{가상환경폴더명}\Scripts\activate # Windows
# python3 -m virtualenv testenv
created virtual environment CPython3.11.1.final.0-64 in 1029ms
creator CPython3Posix(dest=/root/testenv, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/root/.local/share/virtualenv)
added seed packages: pip==24.3.1, setuptools==75.8.0, wheel==0.45.1
activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
# source testenv/bin/activate
(testenv) root@kubemaster210:~#
(testenv) root@kubemaster210:~# deactivate
root@kubemaster210:~#
4. anaconda/conda
- Anaconda는 Python과 데이터 과학 관련 패키지를 포함하는 배포판으로, 가상환경 관리 도구인 conda를 제공합니다.
- 장점: 데이터 과학 및 머신러닝 패키지가 미리 포함되어 있어 편리합니다.
- 단점: 기본 용량이 크며, 필요 없는 패키지도 포함될 수 있습니다.
- 해결책: miniconda를 사용하면 더 가볍게 사용할 수 있습니다.
4.1 Miniconda 다운로드 및 설치
설치 과정에서 라이선스 동의와 설치 경로를 선택해야한다. 기본값을 사용하려면 그냥 enter를 누르면 된다.
# curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# bash Miniconda3-latest-Linux-x86_64.sh
Preparing transaction: done
Executing transaction: done
installation finished.
Do you wish to update your shell profile to automatically initialize conda?
This will activate conda on startup and change the command prompt when activated.
If you'd prefer that conda's base environment not be activated on startup,
run the following command when conda is activated:
conda config --set auto_activate_base false
You can undo this by running `conda init --reverse $SHELL`? [yes|no]
[no] >>>
You have chosen to not have conda modify your shell scripts at all.
To activate conda's base environment in your current shell session:
eval "$(/root/miniconda3/bin/conda shell.YOUR_SHELL_NAME hook)"
To install conda's shell functions for easier access, first activate, then:
conda init
Thank you for installing Miniconda3!
- 설치 확인
# ls miniconda3
# ./miniconda3/bin/conda --version
conda 24.11.1
4.2 가상환경 생성 및 활성화
# conda create --name {가상환경이름} python=3.8
# conda activate {가상환경이름}
# ./miniconda3/bin/conda create --name testconda
Channels:
- defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /root/miniconda3/envs/testconda
Proceed ([y]/n)?
Downloading and Extracting Packages:
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate testconda
#
# To deactivate an active environment, use
#
# $ conda deactivate
# ./miniconda3/bin/conda create --name testconda python=3.8
# ./miniconda3/bin/conda init
# source ~/.bashrc
(base) root@kubemaster210:~# conda activate testconda
(testconda) root@kubemaster210:~#
4.3 가상환경 비활성화
(testconda) root@kubemaster210:~# conda deactivate
(base) root@kubemaster210:~#
(base) root@kubemaster210:~# conda deactivate
root@kubemaster210:~#
5. pipenv
- pipenv는 Python에서 공식적으로 권장하는 가상환경 관리 도구입니다.
- pip 패키지를 기반으로 패키지 의존성과 가상환경을 동시에 관리합니다
5.1 설치
# source /APP/enhpc/profile.d/python-v3.11.1
# pip3 install pipenv
5.2 가상환경 생성 및 활성화
# pipenv install
# pipenv shell
Launching subshell in virtual environment...
source /root/.local/share/virtualenvs/root-BuDEOXnJ/bin/activate
(base) root@kubemaster210:~# source /root/.local/share/virtualenvs/root-BuDEOXnJ/bin/activate
(root) (base) root@kubemaster210:~#