Post

(Python)Python 가상환경 설정

Python 가상환경 설정

  • Java Spring 만 사용하다, 이번에 새롭게 Python 과 Django 를 배우고 있는데 무엇을 하던지 새로운 환경을 설정하는것은 어렵고 오래걸리는것 같다. 매번 여기저거 검색해서 찾아 다니는 것보단 내가 정리를 해놓는게 더 좋을 것 같아 글을 쓰게 되었다.

가상환경 설정이 필요한 이유

  • Java 를 사용할때도 jenv 를 사용해서 java 의 버전을 프로젝트마다 따로 설정해서 사용하긴 했는데, Python의 경우에도 프로젝트마다 버전을 달리 사용해야 하는경우도 있고, 프로젝트 마다 필요한 라이브러리들이 다르고 그걸 통합해서 관리하는 것 보단 나눠서 관리하는게 더 편리하다고 느껴 가상환경을 설정해 사용하기로 했다.

가상환경 설정 방법

pyenv 와 virtualenv 를 사용한 방법

  1. 우선 pyenv 를 맥에 설치한다.
    • brew install pyenv 명령어 사용
    • 설치 후 ~/.zshrc 에 설정해줘야 하는것이 있는데 homebrew 사이트에 자세히 나와있어 따라하기만 하면 된다.
  2. 가상 환경 설정을 위해 pyenv-virtualenv 를 맥에 설치한다.
    • brew install pyenv-virtualenv 명령어 사용
  3. 프로젝트에 사용할 버전의 Python 을 설치해 준다.
    • pyenv install --list | grep 3. 3번때 버전의 Python 의 설치 가능 버전을 확인
    • pyenv install 3.11.1 Python 3.11.1 버전 설치
  4. 설치한 버전을 사용해서 가상환경을 만든다.
    • pyenv virtualenv 3.11.1 py3.11 3.11.1 버전을 가지고 py3.11 이라는 이름을 가지는 가상환경 생성
  5. 프로젝트를 진행할 root 디렉토리로 이동
  6. 프로젝트 디렉토리에 가상환경 적용
    • pyenv local py3.11 명령어 사용
  7. 터미널 명령어줄 앞 또는 뒤에 (py3.11) 이 붙어 가상환경이 적용된걸 확인할 수 있다.
  8. 필요한 라이브러리 다운로드 받아 사용
    • pip3 freeze 다운받은 라이브러리 확인
    • 다른 가상환경을 적용시켜 보면 방금 환경에서 설치한 라이브러리가 검색되지 않는걸 알 수 있다.(프로젝트 별로 필요한 라이브러리를 따로 관리할 수 있게 된다.) - .python-version 파일이 생성되며 이 파일로 Python 을 실행할때 해당 환경의 Python 을 사용하게끔 해준다.

venv 를 사용한 설정 방법

  1. pyenv 또는 homebrew 를 통해 Python 설치가 필요하다.
    • venv 가 Python 에서 제공하는 라이브러리이기 때문에 우선 Python 설치가 필요
  2. 프로젝트를 진행할 root 디렉토리로 이동
  3. 프로젝트 디렉토리에서 프로젝트에 사용할 가상환경 생성
    • python -m venv .venv .venv 라는 이름의 가상환경 생성
    • python 버전의 경우 pyenv 로 설정한 global 버전 또는 맥에 설치한 Python 버전을 따라간다.
  4. 가상환경 활성
    • 가상환경을 생성하면 가상환경의 이름과 동일한 디렉토리가 생성된다.
    • source .venv/bin/activate 명령어를 통해 가상환경을 활성화 시킬 수 있다.
    • .venv 디렉토리 안에 가상환경에서 사용할 python 이 생성되기 때문에 which pyton 명령어를 통해 가상환경이 설정 되었는지 알 수 있다.
  5. 가상환경 비 활성
    • deactivate 명령어를 통해 가상환경을 비 활성 시킬 수 있다.

각각의 설정 방법에 대한 장, 단점

pyenv 와 virtualenv 를 사용한 방법

장점

  • 가상환경이 비활성화 될 일이 거의 없다.
    • .pytion-version 파일을 삭제하는 경우는 거의 드물기 때문

단점

  • Python 외에 vritualenv 를 설치해서 사용해줘야 한다.
  • 처음 설정하는것이라면 조금 헤맬수도 있다.

venv 를 사용한 방법

장점

  • 따로 설치할 필요 없이 Python 만 있으면 가상환경일 설정하고 사용할 수 있다.(편리하다.)

단점

  • 맥을 재부팅하면 가상환경이 비활성화 된다.
    • 가상환경이 비활성화 되었을때 그걸 모르고 라이브러리 설치 를 진행하면 프로젝트에서 import 가 안되는 문제가 발생할 수 있다.
  • 매번 가상환경이 활성화 되어 있는지 신경써줘야 한다.
    • 처음 사용하는 사람의 경우 가상환경이 아닌 다른곳에 라이브러리를 설치하는 등의 실수가 있을수 있다.
This post is licensed under CC BY 4.0 by the author.