파이썬은 프로젝트 별로 파이썬 환경이 독립될 수 있도록 가상 환경(virtual environments)을 제공하고 있습니다.
가상 환경을 생성하면 프로젝트 별로 다른 라이브러리와 버전을 다르게 설치하고 관리할 수 있게 됩니다.
왜 가상 환경을 생성해야 할까요? 그냥 필요한 라이브러리를 설치하면 안 될까요?
여러 프로젝트들이 동일한 환경에서 개발되면 문제가 없겠지만 여러 프로젝트들이 다르게 사용하는 라이브러리가 있거나 다른 라이브러리 버전이 있을 경우에는 문제 됩니다. 그래서, 프로젝트 별로 가상 환경을 생성하고 가상 환경에 라이브러리를 설치하면 이런 문제점들을 해결할 수 있습니다.
더 자세한 내용은 파이썬 문서를 참고하시기 바랍니다. (https://docs.python.org/3/library/venv.html)
(python 사이트 상단에 있는 Docs 클릭 > Python 3.12.7 documentation에서 Library reference 클릭 > The Python Standard Library에서 Software Packaging and Distribution에 있는 venv — Creation of virtual environments 클릭)
가상 환경은 파이썬 3.3에 추가된 기능입니다. (파이썬 3.3.0은 2012년 9월 29일에 릴리즈 되었기 때문에 오래전에 설치하지 않았다면 사용하는 데는 문제가 없을 겁니다.)
설치된 파이썬의 버전을 확인하기 위해서는 콘솔에서 다음과 같이 명령어를 실행합니다.
python --version
저는 Python 3.12.4가 설치되어 있습니다. (파이썬 저장 위치 : C:\workspaces\Python\python312)
현재 PC에 설치된 파이썬 라이브러리를 확인하기 위해서는 콘솔에서 다음과 같이 명령어를 실행합니다.
pip list
저의 PC에는 다른 라이브러리가 설치되어 있지 않습니다. (pip 버전이 24.2로 업그레이드되었다고 알려주네요. 아래에 있는 명령어를 실행하여 업그레이드를 해야겠습니다.)
pip는 파이썬 패키지를 설치하고 관리해 주는 패키지 관리 시스템입니다. (https://pypi.org/project/pip/)
pip는 파이썬 설치 프로그램에서 선택하여 설치할 수 있습니다. (기본적으로 pip는 체크되어 있습니다.)
가상 환경은 콘솔에서 생성할 수 있습니다. 그러나 저는 새로운 프로젝트를 위해 폴더를 생성하고 프로젝트에서 사용할 가상 환경을 생성하도록 하겠습니다. 그리고 개발 IDE로 Visual Studio Code를 사용하겠습니다.
가상 환경 생성
1. 프로젝트 폴더를 생성합니다. (저는 C:\workspaces\projects\project1 폴더를 생성하였습니다.)
2. Visual Studio Code의 메뉴 File(파일) > Open Folder...(폴더 열기)를 클릭하여 "C:\workspaces\projects\project1" 폴더로 이동하고 "폴더 선택" 버튼을 누르면 폴더가 오픈됩니다.
보안을 위해 Trust(신뢰) 확인 창이 나타납니다. "Yes, I Trust the authors" 버튼을 누릅니다. 그리고 Welcome 창은 닫습니다.
3. Visual Studio Code의 메뉴 Terminal(터미널) > New Terminal(새 터미널)를 클릭합니다. 그리고 가상 환경을 생성하기 위해 Terminal(터미널)에서 다음과 같이 명령어를 실행합니다.
python -m venv {가상 환경 이름 또는 경로를 포함한 가상 환경 이름}
저는 가상 환경 이름을 myenv(my environments)라고 하였습니다.
python -m venv myenv
가상 환경이 생성되면 project1 폴더에 myenv라는 폴더가 생성됩니다.
가상 환경 폴더 구조는 다음과 같습니다.
project1/
myenv/ --> 가상 환경 풀더
Lib --> 가상 환경에서 pip로 설치한 라이브러리들이 저장되는 폴더
Scripts --> 가상 환경을 관리하는 스크립트가 있는 폴더
4. 생성된 가상 환경을 활성화하기 위해서는 myenv의 Scripts 폴더에 있는 activate를 Terminal(터미널)에서 실행해야 합니다.
cd myenv\Scripts
./activate
가상 환경이 활성화되면 가상 환경 이름인 (myenv)가 표시됩니다.
(myenv) PS C:\workspaces\projects\project1\myenv\Scripts>
이제 새로운 프로젝트를 위한 가상 환경이 생성되었습니다. (가상 환경이 활성화되어 있어야 pip로 설치한 라이브러리들이 가상 환경의 Lib 폴더에 저장이 됩니다.)
가상 환경의 파이썬의 버전을 확인해 보면 Python 3.12.4인 것을 알 수 있습니다.
그리고 설치된 파이썬 라이브러리를 확인하면 pip가 있는 것을 확인할 수 있습니다.
가상 환경을 비활성화하기 위해서는 myenv의 Scripts 폴더에 있는 deactivate를 Terminal(터미널)에서 실행해야 합니다.
deactivate
다른 버전의 파이썬으로 가상 환경 생성
저의 PC에는 다른 파이썬 버전인 3.11.1도 설치되어 있습니다. (파이썬 저장 위치 : C:\workspaces\Python\python311)
1. 프로젝트 폴더를 생성합니다. (저는 C:\workspaces\projects\project2 폴더를 생성하였습니다.)
2. Visual Studio Code의 메뉴 File(파일) > Open Folder...(폴더 열기)를 클릭하여 "C:\workspaces\projects\project2" 폴더를 오픈하였습니다.
3. Visual Studio Code의 메뉴 Terminal(터미널) > New Terminal(새 터미널)를 클릭하고 가상 환경을 생성하기 위해 Terminal(터미널)에서 다음과 같이 명령어를 실행합니다.
py -{파이썬 버전} -m venv myenv
여러 버전의 파이썬이 설치되어 있으면 python 명령어 대신 py 명령어를 사용하여 버전 별로 실행해야 합니다.
저는 3.11 버전으로 가상 환경을 생성하였습니다.
py -3.11 -m venv myenv
4. 생성된 가상 환경을 활성화하기 위해서는 myenv의 Scripts 폴더에 있는 activate를 Terminal(터미널)에서 실행했습니다. 그리고 가상 환경의 파이썬의 버전을 확인해 보았습니다.
가상 환경이 다른 파이썬 버전으로 생성된 것을 확인할 수 있습니다.
py 명령어 대신 다른 파이썬 버전이 설치되어 있는 경로를 이용해서 가상 환경을 생성할 수도 있습니다.
C:\workspaces\projects\project2> C:\workspaces\Python\python311\python.exe -m venv myenv
py 명령어
여러 버전의 파이썬이 설치되어 있을 경우 py 명령어를 사용하여 버전 별로 파이썬을 실행할 수 있습니다.
콘솔에서 다음과 같이 명령어를 실행합니다.
py -h
설치되어 있는 버전으로 파이썬을 실행하기 위해서는 launcher-args(Launcher arguments)에 실행할 버전을 입력하면 됩니다.
py [launcher-args]
설치되어 있는 파이썬 버전인 3.11.1과 3.12.4를 py 명령어를 이용하여 실행하고 3.X 버전 중 마지막 버전으로 실행되게 하였습니다.
py -3.11
py -3.12
py -3