python의 가상환경 virtualenv 모듈의 사용법을 간단하게 정리한다. python의 가상환경이란, 작은 python을 새로 설치해서 내가 원하는 모듈만 운용하는 바구니라고 생각하면 된다. 운영체제 안에서 새로 운영체제를 만들어내는 가상 머신(virtual machine)과 같은 맥락이라고 볼 수 있다. 같은 모듈이라도 이 버젼 저 버젼 다른 버젼이 필요할 때나, python 프로그램을 실행하기 위한 최소한의 환경을 마련하고자 할 때, 그리고 github 등의 저장소와 연계하고자 할 때 등 가상환경은 매우 다양하게 사용될 수 있다. 이젠 필수적인 요소가 된 python 가상 환경의 리눅스/윈도우에서의 사용법을 정리한다. (본인이 윈도우에서 쓰려고 할 때마다 까먹어서....)

 

리눅스(ubuntu) 환경

ubuntu의 현재 최신 LTS 버젼인 ubuntu 16.04 LTS는 운영체제에 기본적으로 python 2.7 버젼과 3.5 버젼이 모두 탑재되어있다. 그리고 각 버젼의 실행은 다음 명령어를 통해 할 수 있다.


$ python
Python 2.7.12 (default, Jul 1 2016, 15:12:24)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

$ python3
Python 3.5.2 (default, Sep 10 2016, 08:21:44)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

그리고 python과 함께 딸려오는 것이 있는데 pypi (python package installer)이다. pip install ... 로 익숙한 그것이다. 마찬가지로 python 버젼에 따라 다음과 같이 실행하고 --version 옵션을 통해 그 버젼을 확인해볼 수 있다.


$ pip --version
pip 8.1.2 from /home/user/.local/lib/python2.7/site-packages (python 2.7)
$ pip3 --version
pip 8.1.2 from /home/user/.local/lib/python3.5/site-packages (python 3.5)

그럼 이제 가상환경을 사용하기 위한 가상환경 모듈 virtualenv를 설치하자. 아마도 sudo와 함께 써야할 것이다.


# python 2.7
$ pip install virtualenv

# python 3.5
$ pip3 install virtualenv

이제 virtualenv가 설치되었고, 바로 쉘에서 다음과 같이 가상환경을 시작할 수 있다.


$ virtualenv venv
Running virtualenv with interpreter /usr/bin/python
New python executable in /home/don/venv/bin/python
Installing setuptools, pip, wheel...done.

위 작업이 완료되면 내가 지정했던 venv라는 폴더가 생성되고 그 안에 새로 python이 설치되어있음을 알 수 있다. 이제 venv를 가동시키고, 정말로 새로운 python 환경이 생겼는지 확인해보겠다.


$ source venv/bin/activate
(venv) $ pip list
pip (8.1.2)
setuptools (28.7.1)
wheel (0.30.0a0)

여기서 두 가지를 확인할 수 있다. 첫 번째로, source 명령어를 통해 venv 가상환경의 activate를 실행하니 그 다음부터는 쉘 명령창 앞부분에 (venv)가 따라 붙어다니는 것을 볼 수 있다. 이는 이제부터 venv 가상환경 안에 있는 거라고 말해주는 것이다. 두 번째로, venv 안에서 설치된 모듈을 pip list 명령을 통해 확인한 결과... 아무것도 없다는 것이다. pip, setuptools, wheel은 가상환경을 시작할 때 기본으로 설치된 것이다. (이미 pip list를 쓰고 있지 않은가)

한 가지 궁금증이 생길 법한 것이 있는데, 다시 한 번 버젼 문제이다. 2버젼, 3버젼의 python 가상환경을 쓰려면 어떻게 해야하나? 다음과 같은 방안을 쭉 나열해본다. 맘에 드는 방법으로 쓰면 된다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com


# python 2
$ python -m virtualenv venv
$ virtualenv venv --python=python
$ virtualenv venv --python=python2.7

# python 3
$ python3 -m virtualenv venv
$ virtualenv venv --python=python3
$ virtualenv venv --python=python3.5

이제 내가 사용하고자 하는 모듈을 맘대로 설치하면 된다. 그 설치한 목록은 다음 명령어를 통해 정확한 리스트로 저장해두자.


(venv) $ pip freeze > requirements.txt

이제 requirements.txt 파일에서 설치된 모듈과 그 버전이 리스트되어 저장되어 있음을 알 수 있다.

가상환경을 나가고 싶으면 간단히 deactivate라고 명령하면 된다.

 

윈도우 환경

사실 윈도우라고 다를 것은 없다. 기본적으로 python을 설치하면, 자동적으로 pypi가 함께 설치되기 때문에 위 리눅스일 때와 동일하게 virtualenv를 설치하고 시작할 수 있다.


> pip install virtualenv
> virtualenv venv

이제 activate해야 하는데, 여기서는 source 대신 call


> call venv/scripts/activate
(venv) > pip list

가상 환경이 잘 시작되었음을 확인할 수 있을 것이다.



출처: http://dgkim5360.tistory.com/entry/python-virtualenv-on-linux-ubuntu-and-windows [개발새발로그]

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
47 [python] 파이썬 f-string (파이썬 스트링 앞에 f') file 졸리운_곰 2021.07.17 446
46 [Python] 파이썬으로 복리 계산하기 file 졸리운_곰 2021.07.17 562
45 [python, 파이썬] 연습 문제: 복리 이자 계산 졸리운_곰 2021.07.17 925
44 [python] 파이썬 기초 문법 정리 졸리운_곰 2021.05.17 861
43 [python] [GPU]GPU 사용 Python 코드 실행 졸리운_곰 2021.04.21 567
42 [python] 파이썬 스케줄 수행 - schedule, apscheduler file 졸리운_곰 2020.07.26 454
41 파이썬 스크립트 스케줄링하기 file 졸리운_곰 2020.07.26 1011
40 Python Scheduler 만들기(APScheduler) 졸리운_곰 2020.07.26 1089
39 [python] 주피터 노트북에서 패키지 설치 졸리운_곰 2018.12.06 1225
38 Data Structures and Algorithm In python 파이썬으로 자료구조와 알고리즘 : 출처 인터넷 file 졸리운_곰 2018.08.27 514
37 Mastering Basic Algorithms in the Python Language 이북 출처 인터넷 file 졸리운_곰 2018.08.27 629
36 python dev 사용자 입력과 출력 졸리운_곰 2018.03.01 471
35 APScheduler 사용기 file 졸리운_곰 2018.02.09 1070
34 [파이썬, 조각코드] 스케쥴러 만들기. 졸리운_곰 2018.02.09 795
» Python virtualenv 정리 (Linux/Windows) 졸리운_곰 2018.01.23 486
32 [Python] 코드난독화 file 졸리운_곰 2018.01.19 1000
31 Python - Way to recursively find and replace string in text files 졸리운_곰 2017.08.30 478
30 Python Coding for Minecraft 마인크래프트를 위한 파이썬 프로그래밍 file 졸리운_곰 2017.05.05 1794
29 Atom을 Python 개발 툴로 사용하기 file 졸리운_곰 2017.03.06 938
28 IPython Notebook을 통한 데이터 분석 #3 file 졸리운_곰 2017.03.05 754
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED