본문 바로가기
파이썬코드공유

파이썬 Python 가상환경 Virtual Environment 만들기

by 하이어시스템 2023. 7. 14.
반응형

하이어시스템 소개

 

하이어시스템 소개 feat.김프로

소개 안녕하세요, 저는 하이어시스템의 김프로입니다. 여러분들이 어려움을 겪고 계신 일상 업무를 저의 안정적이고 빠른 소프트웨어로 자동화하는 것, 그것이 저의 목표입니다. '하이어시스템

wise-office-worker.tistory.com

목적

각각의 파이썬 프로젝트를 독립적인 개발환경으로 효율적으로 관리하기 위해서 가상환경은 아주 효율적인 방법이므로 개발자들은 반드시 익숙해 질 필요가 있습니다. 가상 환경은 파이썬 표준 패키지 및 Import 할 모듈의 종류와 버전을 선별하여 구축할 수 있습니다. 이렇게 함으로써 각각의 프로젝트를 최적화할 수 있습니다. 만약 가상환경이 없다면 어떻게 될까요? 1대의 PC에서 구축할 수 있는 개발환경은 단일하게 될 것입니다. 만약 다른 환경에서 개발된 프로그램 소스를 수정해야 한다고 생각해 보시죠. 먼저 파이썬 표준 패키지를 제거한 후 새로 설치해야 합니다. 그리고 기존 설치된 모듈은 모두 Uninstall 한 후 필요한 모듈만 다시 Install 해야 하는 과정이 필요합니다. 그렇지 하지 않으면 Import 된 모듈이 지속적으로 증가하므로 갈수록 프로젝트는 무거워지게 됩니다. 간단한 프로젝트를 빌드하더라도 자원낭비가 큰 비효율적인 프로그램이 만들어질 것입니다.

가상환경 만들기

그럼 지금부터 파이썬 가상환경을 만드는 방법에 대해서 알아보도록 하겠습니다. 이전에 설치한 Visual Studio Code를 기준으로 설명드리도록 하겠습니다.

 

1)가상환경 만들기 : 프로젝트에 new_venv란 가상환경을 생성합니다.

python -m venv new_venv

가상환경 생성

새로 생성된 가상환경을 폴더에 추가를 선택합니다. 프로젝트에 현재 설치된 모듈을 확인할 수 있도록 합니다.

가상환경 폴더 추가

가상환경 내 설치된 모듈을 확인할 수있습니다. 아래의 예시를 보면 샘플 코드의 selenium이 참조가 끊어진 상태입니다. 가상환경에 selenium 모듈이 설치되지 않았기 때문입니다.

프로젝트 내 가상환경 설치 모습

2)가상환경 활성화

new_venv\Scripts\activate

activate.bat 을 실행하여 가상환경을 실행시킵니다. 가상환경은 바로 반영이 되지 않으므로 기존 터미널을 닫고 새로운 터미널을 생성합니다.

가상환경 활성화

새로운 터미널을 생성합니다. 그럼 아래와 같이 변경된 프롬프트를 보시게 됩니다.

적용된 가상환경

새로운 터미널에서는 앞 부분에 (new_venv) 라는 가상환경이 구분자가 포함되어 있습니다. 현재 개발해당 가상환경임을 명시적으로 표시해 주는 것입니다.

 

만약 (new_venv) 가 나타나지 않는다면 다음과 같이 조치해보시기 바랍니다.

 

1)오른쪽 하단의 python interpreter 선택 메뉴를 클릭합니다.

2)상단의 Select Interpreter 메뉴가 활성화되면, 가상환경의 3.11.4 버전의 python interpreter를 선택합니다.

 

pyinstaller 설치

pip install pyinstaller

자동화 프로그램을 개발하는 개발자는 최종적으로 배포를 위해 exe 파일로 패킹하는 과정을 거치게 됩니다. 그리고 pyinstaller는 exe 파일을 만들어 주는 모듈입니다. 가상환경에 먼저 pyinstaller을 설치해야 하는 이유는 다음과 같습니다. 만약 이 과정을 잊고 생략하면 표준 패키지에 설치된 pyinstaller를 이용하여 패킹 작업을 하게 되는데, 이로 인해 문제가 발생할 수 있습니다. 예를 들어, 표준 패키지의 pyinstaller를 이용하면 표준 패키지에 설치된 모든 모듈이 패킹되어 exe 파일이 불필요하게 커지는 문제가 발생합니다. 따라서, 가상환경을 구축할 때 동시에 가상환경에 pyinstaller 모듈을 설치함으로써 가상환경 기준의 패킹이 정상적으로 수행되도록 미리 조치하는 것입니다.

기타

아래에서 추가적으로 필요한 모듈을 선별하여 설치합니다. 아래는 하이어시스템 기본 템플릿에서 사용하는 모듈입니다.

old(~2023)

pip install requests gspread getmac oauth2client pyperclip selenium openpyxl chromedriver_autoinstaller psutil

 

new(2024~)

pip install requests gspread getmac oauth2client pyperclip selenium openpyxl psutil pyautogui

프로젝트에 모듈 설치하기

이제 가상환경에 필요한 모듈의 종류 및 버전을 선별하여 설치합니다. 아래의 예시 화면에서 selenium 라이브러리는 현재 가상환경에는 미설치된 것으로 확인됩니다. 가상환경에 selenium을 설치합니다. 

selenium 모듈이 설치되지 않은 상태
프로젝트에 필요한 모듈의 종류와 버전을 선별하여 설치

 

마치며

파이썬 가상 환경을 구성하여 각각의 프로젝트들에 대해서 독립적으로 개발환경을 구축할 수 있었습니다. 이렇게 함으로써 사용자에게 배포할 때 최적화된 모듈만 exe 패킹이 될 것입니다.  반드시 프로젝트에 적용하여 개발해야 합니다.

반응형