파이썬 가상환경을 사용하다 보면, 프레임워크나 라이브러리가
지원하는 버전에 따라 필요한 파이썬 버전이 종종 다른 경우가 있다.
데이터분석, 딥러닝 등으로 파이썬에 입문했다면, 아나콘다로 관리하는게 가장 익숙할 것이다.
파이썬 버전도 마음대로 주무를수 있고, json, http 등 필수적인 다양한 라이브러리도 설치해주는데, 문제는 무겁다.
그렇기에, 파이썬으로 웹, 서버 개발 등을 하고자 한다면, 굳이 아나콘다를 써서 가상환경 관리를 하는 것이 아니라 타 가상환경 관리 모듈을 사용하는게 낫다.
특히, 파이썬 3.3 이후로는 venv가 표준이다. 그래서 venv를 통한 가상환경 관리에 대해 간단히 기록해놓고자 한다.
venv 쓰는법은 매우 간단하다.
윈도우 cmd 창을 열고, 가상환경을 만들 디렉토리로 이동한다
> cd C:\venvs #해당 디렉토리로 이동
> python -m venv myenv #venv 모듈을 활용해 가상환경 생성
> myenv\Scripts\activate #해당 가상환경 실행
가상환경이 실행된 상태에서는 파이썬의 pip 모듈을 활용해 다양한 라이브러리를 편리하게 관리할 수 있다.
> pip install <library name> #라이브러리 설치
> pip install <library name>==<library_version> #특정 설치
> pip install -r requirements.txt #requirements에 있는 모든 파일 설치
> pip freeze #설치된 라이브러리 확인
> pip uninstall <library name> #설치된 라이브러리 삭제
여기까진 너무너무 쉽고 간편하고 편리하다.
근데 프로젝트를 하다보면 골때리는 경우가 종종 생긴다.
파이썬 3.9버전의 가상환경으로 라이브러리, 프레임워크 깔아가며 프로젝트를 진행하고 있었는데,
특정 라이브러리가 3.8만 지원한다면?
이럴 때, venv로 생성한 가상환경을 버전 다운그레이드를 어떻게 하는지 한참 삽질했다.
해결책이 두 가지 있다.
1. 가상환경에 설치된 라이브러리를 모두 기록한 후, 새로 가상환경을 만들고 라이브러리를 설치한다.
코드와 함께 흐름을 보여주자면,
> (myenv) > python -m pip freeze > requirements.txt #해당 가상환경의 라이브러리가 requirements.txt로 저장된다.
> deactivate # 가상환경을 꺼주고
> C:\Users\Dong\AppData\Local\Programs\Python\Python38\python -m venv myenv2 #파이썬 공식 홈페이지에서 파이썬 3.8을 다운로드 받은 후, 3.8 파이썬의 venv를 실행시켜 새로운 가상환경을 만든다.
> C:\venvs\myenv2\Scripts\activate
> cd C:\venvs\myenv2
> pip install -r requirements.txt
2. 가상환경을 그냥 특정 파이썬 버전으로 내려준다.
> cd C:\venvs
> C:\Users\Dong\AppData\Local\Programs\Python\Python38\python -m <기존에 있던 버전 다운그레이드가 필요한 가상환경 이름>
끝이다... 기존 사용하던 가상환경 이름과 똑같은 이름을 같은 디렉토리에
파이썬 3.8로 생성해주는 명령어를 치면, 알아서 파이썬 버전이 내려간다.
이렇게 간단했던 것을...
앞으로는 venv로 간단하게 가상환경 관리할 수 있겠다.