image 54 [Python] 'venv' 사용법: 활용부터 에러 해결까지 Programming

[Python] ‘venv’ 사용법: 활용부터 에러 해결까지

Posted by

파이썬을 여러 프로젝트에 활용하다 보면, 프로젝트마다 패키지 버전이 달라서 충돌이 생기는 경우가 많아진다. 예를 들어 어떤 프로젝트에서는 requests==2.27 버전을 써야 하는데, 다른 프로젝트에서는 requests==2.31 버전을 쓰고 있을 수 있다. 이런 식으로 패키지 버전 충돌이 나면, 프로젝트를 원활히 진행하기가 꽤 번거로워진다.

그래서 파이썬 표준 라이브러리에 포함된 venv를 사용하면, 각 프로젝트마다 별도의 가상 환경을 만들어서 패키지들을 격리된 상태로 관리할 수 있다. 최신 버전의 파이썬(3.12 포함)에서도 venv는 계속해서 중요한 역할을 하고 있으니, 파이썬을 조금 더 안전하게 쓰고 싶다면 꼭 알아둬야 하는 기본 기능 중 하나이다.

image 56 [Python] 'venv' 사용법: 활용부터 에러 해결까지 Programming

venv란?

venv는 Python의 표준 라이브러리 중 하나로, 별도의 패키지나 모듈 환경을 제공하는 가상 환경을 만들기 위해 사용할 수 있다. 즉, 프로젝트마다 다른 버전의 패키지를 사용하고 싶을 때, 이를 격리된 환경에서 관리할 수 있게 도와준다.

venv의 장점

  • 격리된 환경: 다양한 프로젝트에서 서로 다른 패키지나 Python 버전의 충돌 없이 작업할 수 있다.
  • 버전 관리: 프로젝트별로 필요한 패키지와 그 버전을 쉽게 관리할 수 있다.
  • 의존성 문제 해결: 각 프로젝트의 의존성을 명확하게 알 수 있으므로 배포나 협업 시 문제를 최소화 할 수 있다.

venv의 단점

  • 추가적인 공간: 각 가상 환경마다 패키지를 복제하기 때문에 디스크 공간이 추가로 필요하다.
  • 관리: 여러 가상 환경을 사용하면 관리가 복잡해질 수 있다.

venv 사용 방법

  • 가상 환경 생성
    Windows: python -m venv [가상환경명]
    Linux/Mac: python3 -m venv [가상환경명]
  • 가상 환경 활성화
    Windows: [가상환경명]\Scripts\activate
    Linux/Mac: source [가상환경명]/bin/activate
  • 가상 환경 비활성화
    모든 운영체제에서: deactivate
  • 패키지 설치
    활성화된 가상 환경에서, pip install [패키지명] 명령어를 사용하여 패키지를 설치한다.
  • requirements.txt를 활용한 패키지 설치
    requirements.txt 파일 내의 패키지를 한번에 모두 설치할 때는,
    pip install -r requirements.txt 명령어를 사용하여 패키지를 설치한다.
  • 가상 환경 내 패키지 리스트 확인 및 requirements.txt 만들기
    가상환경 내 패키지 리스트 확인: pip freeze
  • 가상환경 내 패키지를 requirements.txt 만들기
    pip freeze > requirements.txt
  • 가상환경 삭제하기
    가상 환경은 결국 폴더 형태로 저장되기 때문에, 해당 폴더를 삭제하면 가상 환경도 함께 삭제된다.

활용 예시

가상 환경 생성 및 활성화

# Windows
python -m venv myenv 
myenv\Scripts\activate

# Linux/Mac 
python3 -m venv myenv 
source myenv/bin/activate

패키지 설치 및 확인

pip install requests
pip freeze

가상 환경 종료

deactivate

추가 Tip

PowerShell에서 가상 환경 활성화 안될 때 활성화 시키기

# Windows
myenv\Scripts\activate.ps1

보안 오류로 가상 환경 활성화가 안될 때

+ .\Scripts\Activate.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : 보안 오류: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

위와 같은 문구가 뜨면서 가상환경 진입이 안될 때는 윈도우 실행정책이 막혀 있는 경우이다.

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope LocalMachine

cmd창에 위와 같이 입력하여 정책을 변경하면 가상환경이 활성화 되는 것을 확인 할 수 있다.

최신 트렌드와 AI 관점

  • Python 3.14 대응: 최신 버전의 파이썬에서도 venv 활용법은 크게 달라지지 않았지만, 새롭게 추가되는 라이브러리나 기능들(예: 빠른 모듈 로딩 최적화 등)을 테스트할 때도 가상 환경을 사용하면 충돌 없이 시도할 수 있다.
  • AI 프로젝트에서의 필요성: 머신러닝/딥러닝 라이브러리는 버전 호환이 까다로운 경우가 많아. TensorFlow, PyTorch, scikit-learn 등 버전 차이로 인해 문제가 생기는 걸 막으려면, 반드시 venv로 가상 환경을 만들어 쓰는 걸 추천한다.

보면 좋은 관련 글

Leave a Reply

Your email address will not be published. Required fields are marked *