가상 환경이란, 독립적인 파이썬의 실행 환경을 의미. 각각의 가상 환경은 다른 환경에 영향을 미치지 않으며 각자 다른 종류와 버전의 패키지를 가질 수 있다.
파이썬을 사용할때 pip 패키지 매니저를 이용해서 필요한 패키지를 설치한다.
하지만 pip로 설치한 패키지는 전역으로 설치되기때문에 모든 프로젝트에서 사용이 가능하게 된다. 프로젝트 한 개만 진행된다면 상관없지만 프로젝트가 여러개일 경우 각 프로젝트마다 필요한 패키지, 버전 등이 다르기때문에 호환성 문제때문에 충돌이 발생한다.
1. 가상환경을 미리 만들면 사용자가 프로젝트에 사용할 패키지들만 설치해야 할 수 있다.
2. 시간이 지남에 따라 패키지들도 업데이트가 되는데 호환성 문제를 위해서, 한 프로젝트에서 사용하는 패키지들의 버전들을 한 번에 관리하기 위해서 사용합니다.
모듈은 대표적으로 venv, virtualenv, pipenv, conda 로 가상 환경을 관리하고 있습니다.
python에서는 가상황경라이브러리로 기본적으로 venv가 있다.
검색하다보면 virtualenv도 나오는데 이것은 파이썬 2.x에서는 가상환경라이브러리가 기본적으로 제공되지 않았기 때문이다. 파이썬 3.x를 쓴다면 굳이 virtualenv를 설치하지 말고 기본적으로 제공하는 venv를 사용하자.
venv - Creation of virtual environments - Python 3.10.7 documentation
가상환경은 작업할 프로젝트 폴더안에서 생성해주면된다.
그러면 생성된 [가상환경이름]으로 하위 폴더가 하나 생성되는데 일반적으로 venv으로 만드는 걸 추천한다.
(pycharm이나 vscode 프로젝트 생성시 내부에 꼭 있던 venv 폴더가 생각날 것이다. 맞다 같은것이다.)
python -m venv [가상환경 이름]
시스템 기본 파이썬을 사용하면서 설치했던 전역 패키지들을 깔고 시작할 수도 있다. 명령어 칠 때 뒤에 --system-site-packages
라고 붙여주면 된다.
python -m venv [가상환경이름] --system-site-packages
가상환경 폴더에 있는 activate를 실행시키면 된다. 실행시키고 나면 자유롭게 프로젝트 안에서 pip install로 패키지를 설치하면된다.
source [가상환경 이름]/bin/activate
# 패키지 목록
$ pip freeze
$ pip freeze > requirements.txt # 설치된 패키지 리스트 txt파일로 변환
# 패키지 설치
$ pip install [패키지명]
$ pip install -r 파일이름.txt
deactivate
개인적으로 해당 강의수준에서는 아나콘다까지는 필요가 없다. 하지만 M1환경에서 Pycharm 셋팅을 하려다보니 자꾸 아나콘다나 나와서 멋모르고 설치를 했었지만 위의 방법까지만 하는것이 이 강의에서는 딱 좋다.
아나콘다는 패키지 관리와 디플로이를 단순케 할 목적으로 과학 계산을 위해 파이썬과 R 프로그래밍 언어의 자유-오픈 소스 배포판이다. 패키지 버전들은 패키지 관리 시스템 conda를 통해 관리된다.
프로젝트를 진행하다보면 여러 라이브러리, 패키지를 다운로드하여서 사용하게 된다. 그러다 보면 각 라이브러리들끼리 충돌을 일으키는 문제를 발생시키는 경우, 또는 특정 버전과 호환하는 경우가 생겨서 최신 버전과 이전 버전 중 선택해야 하는 상황이 발생하는데 이때 아나콘다를 이용한 가상환경을 통해서 각 프로그램별로 라이브러리 모듈 등의 버전을 별도로 관리할 수 있다.
Anaconda | Anaconda Distribution
꼭 아래에서 버전에 맞게 (M1)Graphical Installer를 설치하자
프로젝트 생성화면에서 New enviroment using을 Conda로 변경한다.
Conda executable에 아까 아나콘다가 설치된 위치를 입력해준다.
프로젝트가 생성된 다음
preferences > Proejct : pythonProject > python Inerpreter 에서 conda의 패키지들을 확인할 수 있다.
python이 정상적으로 3.10버전이 들어간것을 볼수 있다