프로그래밍/소소한 지식

가상환경 만들기 및 사용하기

백사니 2025. 4. 14. 23:43
728x90
반응형

이번에는 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, 그외 라이브러리들이 실행된다.

728x90
반응형