강좌
클라우드/리눅스에 관한 강좌입니다.
프로그램 분류

파이썬기초121 : Python의 virtualenv가 필요한 이유에 대하여

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

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]#



관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,035 명
  • 현재 강좌수 :  35,794 개
  • 현재 접속자 :  134 명