virtualenv
이녀석은 python 환경을 local 로 설정할 수 있다. 무슨 이야기냐면, 원래 python 을 설치하게 되면 os 내에서 global 하게 설치된다. (누구나 os 의 어느 곳에서나 사용할 수 있다는 이야기이다.) 그리고 extension 이나 library 등의 설치도 global 하게 설치된다.그런데 이렇게 되면 문제가 되는 것은 이동성, 이식성(portability) 이 나빠진다. 다시 말하면, 내가 현재 만들어놓은 python program 을 다른 곳에서 사용하려고 하면 관련 module 이나 library 들을 같이 가져가야 사용할 수 있는데, 이런 작업을 위해서 내가 이 프로그램을 위해서 설치해놓은 library 나 module 들이 무엇인지 잘 정리해 놨다가 다른 컴퓨터에 설치할 때 python 을 설치하고 해당 module 을 같이 설치한 후에 내 프로그램을 설치해야 한다.(물론, easy_install 등을 이용한 package 등을 만들 수 있다.)
여하튼 이런 불편함은 내가 프로그램을 만들면서 사용하는 모든 것들을 내 project folder 안에 넣어놓으면 간단히 해결된다. 그럼 이 project directory 만 copy 하는 것으로 나는 손쉽게 내 python program 을 옮길 수 있게 된다.
이런 일을 해주는 녀석이 virtualenv 이다. 간단히 이야기 하면 이녀석은 내가 python program 을 만들면서 추가하는 여러 library 등을 local 로 설치할 수 있도록 해 주는 녀석이다.
보다 간략한 설명은 ref. 1을 참고하자.
virtualenv 설치
c:\Python27\Scripts>pip install virtualenv Collecting virtualenv Downloading virtualenv-12.0.7-py2.py3-none-any.whl (1.8MB) 100% |################################| 1.8MB 205kB/s Installing collected packages: virtualenv Successfully installed virtualenv-12.0.7
python3 에서 pip 와 venv 설치하기
sudo apt-get install python3-venv python3-pip
python3 -m venv myenv
- source env
virtualenv venv
project directory 를 만들고(여기선 bogo) 그곳에서 virtualenv venv 를 실행하자.c:\...\programming\flask\bogo>c:\Python27\Scripts\virtualenv.exe venv New python executable in venv\Scripts\python.exe Installing setuptools, pip...done.
그러면 아래 같이 폴더가 생기고 안에 python 이 들어가 있게 된다.
- c:\...\programming\flask\bogo\venv\
그리고 아래처럼 activate 를 실행하자.
c:\...\programming\flask\bogo>venv\Scripts\activate.bat (venv) c:\...\programming\flask\bogo>
package 설치
가상환경 bogo\venv 내에도 pip(venv\Scripts\pip.exe) 를 제공한다. 이 녀석을 이용해서 venv 내에 package 들을 설치하면 된다.가상환경 안에 설치하는 모든 Python package는 해당 프로젝트의 venv 폴더안에 설치되고 이 가상환경 안에서만 사용할 수 있다.[ref.1]
pip freeze > requirements.txt
pip install -r requirements.txt
IntellJ Ultimate, python plugin 에서 virtualenv 설정하는 방법
References
- Python in Real World: virtualenv를 사용하자 - 가상 개발환경 구축하기
- Installation — Flask Documentation (0.10)
- Installing pip/setuptools/wheel with Linux Package Managers — Python Packaging User Guide
댓글 없음:
댓글 쓰기