ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python 파이썬 가상환경 setting (feat.virtualenv, python -m venv)
    개발Tip 2020. 12. 30. 01:20
    728x90

    pip 패키지 관리를 위해 프로젝트마다 가상환경 설치 후 개발 할 것!

    https://medium.com/@dan_kim/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%B4%88%EC%8B%AC%EC%9E%90%EB%A5%BC-%EC%9C%84%ED%95%9C-pip-%EA%B7%B8%EB%A6%AC%EA%B3%A0-virtualenv-%EC%86%8C%EA%B0%9C-a53512fab3c2

     

    개발을 하기 앞서 아래 명령어로 내 컴퓨터에 설치되어 있는 패키지 리스트를 볼 수 있습니다.

    $ pip list

     

    앞서 (가상환경 없이)개발했던 프로젝트들이 있다면, 많은 패키지 리스트를 볼 수 있는데, 

    완전 새로운 프로젝트를 시작할 때 전혀 필요하지 않은 패키지들일 수 있습니다.

     

    청소를 해봅시다.

    아래 명령어로 패키지를 한번에 묶어 파일로 저장한 다음 파일을 통째로 날려주면 됩니다.

    $ pip freeze > requirements.txt

    그러면 현재 폴더 위치에 requriements.txt라는 파일이 생성되고 클릭해보면 그 안에 패키지 리스트를 확인할 수 있습니다.

    이제 아래 명령어로 한번에 삭제할 수 있습니다.

    $ pip uninstall -r requirements.txt -y

     

    다시 pip list로 확인해보면, 깔끔해진 패키지 리스트를 볼 수 있습니다.

    이제 청소를 다 마쳤으면, 기분 좋은 상태로 새 프로젝트를 시작하면 됩니다:)

     


     

    이 과정을 반복하지 않기 위해, 가상환경 설정이 매우! 중요합니다!

    가상환경을 사용하면, 똑같은 내 컴퓨터에서 프로젝트마다 설치하는 패키지들을 독립적으로 관리할 수 있습니다.

     

    이게 중요한 이유는 개발을 하고 일정 시간이 지난 후, 해당 프로젝트에 썼던 라이브러리 혹은 패키지가 업데이트가 되었을 때,

    새로 시작하는 프로젝트에 맞춰 전체 업데이트를 한다면, 이전 프로젝트가 더이상 돌아가지 않는 참사가 일어날 수도 있기 때문입니다.

     

    따라서 각 프로젝트마다 필요한 라이브러리, 패키지들 그리고 프로젝트에 맞는 버전 환경을 맞춰주기 위해서는 

    내 컴퓨터에 글로벌로 통일하는 것이 아니라 각 프로젝트 가상환경의 로컬에서 패키지 리스트 관리를 해주는 것입니다.

     

     

    가상환경 Setting

    1. virtualenv 모듈 설치

    가상환경을 만들어주는 virtualenv 모듈을 설치하여 사용할 수 있습니다.

    pip과 virtualenv는 유일하게 글로벌로 설치되어 있어야 하는 패키지라고 볼 수 있습니다.

    $ pip install virtualenv
    
    # 프로젝트 root 폴더 이동 후 가상환경 만들기
    $ virtualenv venv(가상환경이름)

     

    2. 설치 없이 바로 생성

    $ python -m venv venv(가상환경이름)
    # WindowsOS 윈도우
    $ source venv(가상환경이름)/Scripts/activate
    # MacOS 맥
    $ source venv(가상환경이름)/bin/activate

    *위 두가지에서 가상환경 이름은 venv라고 임의로 지정했습니다. 가상환경 이름은 편한 이름으로 만드시면 됩니다.

     

    active 명령어로 가상환경을 실행했습니다. 앞에 (venv)라고 붙여진 것을 확인할 수 있습니다.

    가상환경은 터미널 종료시 자동으로 종료되기 때문에, 프로젝트를 실행할 때마다 activate를 해줘야합니다.

    종료하려면 deactivate라고 명령어를 치면 됩니다.

     


     

    당신이 어떤 것을

    할머니에게 설명해주지 못한다면,

    그것은 진정으로 이해한 것이 아니다. 

    - A.Einstein

     

    댓글

Designed by Tistory.