파이썬기초121 : Python의 virtualenv가 필요한 이유에 대하여
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 3,305 조회
- 0 추천
- 목록
본문
Python의 Virtualenv가 필요한 이유에 대하여
Python의 virtualenv는 각각의 어플리케이션들 별로 독립된 환경(가상환경)을 사용할 수 있도록 해두는 Python 가상환경이다.
파이썬으로 작성된 2개 이상의 어플리케이션(App#1과 App#2)이 있다고 가정해보자.
App#1에서 요구되어지는 라이브러리버전과 App#2에서 요구되는 라이브러리버전이 각각 다른 버전이다.
한대의 리눅스시스템에는 하나의 Python버전만 설치되기 때문에 각각 다른 라이브러리버전을 요구하는 어플리케이션들이 있다면 버전 충돌이 일어나게되어 정상작동이 되지 않는다.
이경우 Python의 virtualenv는 App#1과 App#2의 각각 다른 라이브러리버전을 사용할 수 있도록 해주는 환경을 제공해주게 된다.
즉 virtualenv안에서 각각 다른 Python버전을 사용할수 있게 된다.
1. virtualenv를 설치
[root@sulinux01 ~]# python3 -m pip install --user -U virtualenv
Collecting virtualenv
Downloading virtualenv-20.23.0-py3-none-any.whl (3.3 MB)
|████████████████████████████████| 3.3 MB 3.6 MB/s
Collecting platformdirs<4,>=3.2
Downloading platformdirs-3.5.1-py3-none-any.whl (15 kB)
Collecting filelock<4,>=3.11
Downloading filelock-3.12.0-py3-none-any.whl (10 kB)
Collecting distlib<1,>=0.3.6
Downloading distlib-0.3.6-py2.py3-none-any.whl (468 kB)
|████████████████████████████████| 468 kB 24.4 MB/s
Installing collected packages: platformdirs, filelock, distlib, virtualenv
WARNING: Value for scheme.platlib does not match. Please report this to <https://github.com/pypa/pip/issues/10151>
distutils: /root/.local/lib/python3.9/site-packages
sysconfig: /root/.local/lib64/python3.9/site-packages
WARNING: Additional context:
user = True
home = None
root = None
prefix = None
Successfully installed distlib-0.3.6 filelock-3.12.0 platformdirs-3.5.1 virtualenv-20.23.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
[root@sulinux01 ~]#
2. 싸이썬가상환경 만들기
먼저 가상환경을 만들위치로 이동한다.
[root@sulinux01 ~]# cd /home/sspark
[root@sulinux01 sspark]#
[root@sulinux01 sspark]# virtualenv env
created virtual environment CPython3.9.14.final.0-64 in 843ms
creator CPython3Posix(dest=/home/sspark/env, 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==23.1.2, setuptools==67.7.2, wheel==0.40.0
activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
[root@sulinux01 sspark]#
3. 가상환경 활성화
[root@sulinux01 sspark]# source env/bin/activate
(env) [root@sulinux01 sspark]#
(env) [root@sulinux01 sspark]#
4. 가상환경에서 필요한 패키지 설치작업하기
(env) [root@sulinux01 sspark]#
(env) [root@sulinux01 sspark]# pip install pandas scipy numpy
Collecting pandas
Downloading pandas-2.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.4/12.4 MB 33.6 MB/s eta 0:00:00
Collecting scipy
Downloading scipy-1.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (34.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 34.5/34.5 MB 42.1 MB/s eta 0:00:00
Collecting numpy
Downloading numpy-1.24.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 17.3/17.3 MB 66.7 MB/s eta 0:00:00
Collecting python-dateutil>=2.8.2 (from pandas)
Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 247.7/247.7 kB 57.9 MB/s eta 0:00:00
Collecting pytz>=2020.1 (from pandas)
Downloading pytz-2023.3-py2.py3-none-any.whl (502 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 502.3/502.3 kB 88.9 MB/s eta 0:00:00
Collecting tzdata>=2022.1 (from pandas)
Downloading tzdata-2023.3-py2.py3-none-any.whl (341 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 341.8/341.8 kB 69.6 MB/s eta 0:00:00
Collecting six>=1.5 (from python-dateutil>=2.8.2->pandas)
Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: pytz, tzdata, six, numpy, scipy, python-dateutil, pandas
Successfully installed numpy-1.24.3 pandas-2.0.1 python-dateutil-2.8.2 pytz-2023.3 scipy-1.10.1 six-1.16.0 tzdata-2023.3
(env) [root@sulinux01 sspark]#
(env) [root@sulinux01 sspark]#
5. 가상환경에서 나오기
(env) [root@sulinux01 sspark]#
(env) [root@sulinux01 sspark]# deactivate
[root@sulinux01 sspark]#
[root@sulinux01 sspark]#
관련자료
-
이전
-
다음