Python - venv로 가상환경 구성 및 설정

파이썬 프로그램을 개발할 때, 다양한 라이브러리를 사용합니다.

문제는 라이브러리 끼리 서로 버전 의존성이 있어서 특정 버전이 필요한데, 다른 파이썬 프로젝트를 실행하려면 또 다른 버전을 설치해야한다는 점입니다.

venv로 가상 환경을 만들어, 특정 프로젝트에 필요한 버전을 설치하여 실행할 수 있다면 다른 프로젝트에 영향을 주지 않을 수 있습니다. 이 글에서는 venv로 가상 환경을 세팅하는 방법을 소개합니다.

1. venv로 가상 환경 만들기

다음과 같이 python -m venv [name] 명령어를 입력하면 가상 환경이 생성되며, 관련 파일들은 myvenv 라는 폴더 아래에 생성됩니다.

$ python -m venv myvenv

$ ls
myvenv

2. 가상환경 활성화

터미널에서 현재 쉘이 가상 환경에서 동작하도록 하려면, 아래와 같이 활성화를 시킵니다. 활성화가 되면 쉘의 왼쪽에 (myvenv)라고 이름이 보여집니다. 이제 현재 쉘은 가상환경에서 동작한다고 보시면 됩니다.

$ . myvenv/bin/activate

(myvenv) $ python --version
Python 3.8.10

가상환경에서 파이썬 버전을 확인해볼 수 있고

(myvenv) $ python --version
Python 3.8.10

파이썬의 설치 위치를 확인해볼 수도 있습니다. 파이썬은 가상환경 폴더 안에 위치해 있습니다.

(myvenv) $ which python
/home/js/test/myvenv/bin/python

pip로 라이브러리를 설치할 수 있는데, 모두 가상환경에 설치되고 가상환경 밖의 시스템에 설치되지 않습니다.

(myvenv) $ pip install requests urllib3
Collecting requests
  Downloading requests-2.28.1-py3-none-any.whl (62 kB)
     |████████████████████████████████| 62 kB 1.7 MB/s
...

pip list 명령어로 설치된 모듈을 확인해보면, 매우 적은 모듈만 설치된 것을 볼 수 있습니다.

(myvenv) $ pip list
Package            Version  
------------------ ---------
certifi            2022.9.24
charset-normalizer 2.1.1    
idna               3.4      
pip                20.0.2   
pkg-resources      0.0.0    
requests           2.28.1   
setuptools         44.0.0   
urllib3            1.26.12  

pip로 필요한 모듈을 모두 설치하였다면, 이 환경에서 파이썬 프로그램을 개발하면 됩니다.

3. 가상환경 비활성화

deactivate 명령어를 입력하면 가상환경이 종료되며, (myvenv)가 터미널에서 사라지며 시스템 환경으로 이동합니다.

(myvenv) $ deactivate

파이썬의 설치 위치를 보면, 시스템에 설치된 파이썬 경로입니다.

$ which python
/usr/bin/python

pip list로 설치 모듈 목록을 보면, 매우 많은 모듈이 설치된 것을 볼 수 있습니다.

$ pip list
Package                  Version             
------------------------ --------------------
aiodns                   3.0.0               
aiohttp                  3.7.4.post0         
apiclient                1.0.4               
apturl                   0.5.2               
async-generator          1.10                
async-timeout            3.0.1               
attrs                    21.2.0              
autokey                  0.95.10             
backports.zoneinfo       0.2.1               
bcrypt                   3.1.7               
beautifulsoup4           4.10.0              
blinker                  1.4                 
Brlapi                   0.7.0               
bs4                      0.0.1               
cachetools               4.1.1               
ccxt                     1.55.60             
certifi                  2019.11.28          
cffi                     1.14.6              
chardet                  3.0.4               
charset-normalizer       2.0.12              
Click                    7.0                 
colorama                 0.4.3               
command-not-found        0.3                 
courlan                  0.6.0      
....

4. 가상환경 삭제

rm 명령어 등으로, 가상환경을 만들 때 생성된 폴더를 삭제해주면 됩니다.

$ rm -rf myvenv
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha