이번에는 Python에서 기본으로 제공해주는 venv로 가상환경을 만들고 사용해볼 것이다.
시작하기에 앞서 만약 가상환경에 대해서 잘 모른다면 아래 링크에 자세히 정리해놓았다.
가상환경이란? 만들기 및 실행까지
"한 프로젝트에서 특정 라이브러리 버전이 필요하고, 다른 프로젝트에서는 다른 버전이 필요할 때 가상환경을 사용하면 충돌을 피할 수 있다" 파이썬을 사용하다보면 라이브러리를 많이 쓰게된
jinho082008.tistory.com
위 글에서 읽거나 가상환경에 대해서 들어봤다면 전역 환경이 아니라 프로젝트에 적합한 환경을 따로 만드는 것이라고 알것이다.
그렇다면 어떻게 만들어지고 실행되는 걸까?
Python에서 가상환경을 만들고 접속하는 것은 PowerShell로 간편하게 할 수 있다.
PowerShell을 키면 아래와 같이 현재 위치가 나오는 것을 볼 수 있다.
이때 중요한 점은 관리자 권한으로 PowerShell을 실행시켜야한다는 것이다.
이후 해당 명령어로 가상환경을 만들어 주고 해당 환경에 접속해준다.
mkdir 파일 이름
cd 파일 이름
python -m venv venv
이렇게 하면 MLProject에 들어간 모습을 볼 수 있다.
이후
.\venv\Scripts\Activate.ps1
이 명령어를 통해 현재 들어온 파일의 가상환경을 실행시킨다.
정상적으로 실행됐다면 왼쪽에 (venv)가 생긴것을 볼 수 있다.
만약에 실행 도중 가상환경 생성이나 접속이 안된다면 윈도우 정책을 바꾸어 허용시켜줘야한다.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
PowerShell에서는 보안상 .ps1 스크립트 실행이 막혀 있는 경우 있기 때문에 이걸 허용하려면 다음 명령어를 관리자 권한으로 실행시켜야한다. Y를 입력해 허용해주고 재시도하면 가상환경을 실행할 수 있을 것이다.
이 후 이곳에 원하는 라이브러리를 pip을 통해서 설치해주면 된다.
필자는 Unity에 ML-Agents를 사용하기 위해서 가상환경을 설치했기에 mlagents 라이브러리와 이에 필요한 protobuf 라이브러리를 설치하였다.
pip install mlagents
pip install mlagents==2.0.1 protobuf==3.20.3
이렇게 간단하게 Python 라이브러리를 가상환경에서 설치할 수 있다.
가상환경에서 ML-Agents를 학습시키는 과정
기본적으로 가상환경은 PowerShell에서 동작한다. 그렇기 때문에 PowerShell을 닫으면 그 즉시 종료된다.
물론 명령어로 종료시킬 수도 있다.
deactivate
가상환경 동작 원리
그렇다면 가상환경이 동작하는 원리가 무엇일까?
가상환경을 활성화 시키면 OS의 PATH 환경변수가 현재 위치로 변경된다.
PATH 환경변수는 운영체제에서 명령어를 찾을 때 검색하는 위치를 말한다.
가상환경을 활성화 시키면 가상환경 안의 실행파일을 가장 먼저 찾도록 PATH 환경변수 맨 앞에 가상환경 경로가 추가된다.
이러한 원리로 프로젝트를 실행시키면 가상환경의 python.exe, 그외 라이브러리들이 실행된다.
'프로그래밍 > 소소한 지식' 카테고리의 다른 글
코딩테스트에 자주 사용하는 수학함수 모음 (cmath 라이브러리) (0) | 2025.04.19 |
---|---|
가상환경이란? (0) | 2025.04.14 |