Programming

Python virtualenv 정리 (Linux/Windows)

steloflute 2018. 12. 10. 23:30

Python virtualenv 정리 (Linux/Windows)

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


https://dgkim5360.tistory.com/entry/python-virtualenv-on-linux-ubuntu-and-windows



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 가상환경을 쓰려면 어떻게 해야하나? 다음과 같은 방안을 쭉 나열해본다. 맘에 드는 방법으로 쓰면 된다.


# 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

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



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

'Programming' 카테고리의 다른 글

History of Lisp  (0) 2019.05.29
Descending sort in Haskell  (0) 2019.05.28
Small String Optimization and Move Operations  (0) 2018.08.17
(C#) LottoTest  (0) 2018.08.05
[curl] 윈도우 환경에서 라이브러리 빌드 및 설치  (0) 2018.07.04