본문으로 건너뛰기

교육 ·

비전공자 파이썬 가상환경(venv) 배우는 법, 꼭 써야 하나요

비전공자 파이썬 가상환경(venv) 배우는 법, 꼭 써야 하나요

비전공자 파이썬 가상환경(venv) 배우는 법을 궁금해하시는 분들은 대부분 이미 한 번 문제를 겪은 뒤입니다. pandas나 openpyxl을 설치해 잘 쓰던 스크립트가, 다른 프로젝트에서 새 라이브러리를 설치하고 나서 갑자기 에러를 뱉는 경우입니다. 결론부터 말하면 가상환경은 프로젝트마다 독립된 파이썬 설치 공간을 만들어, 라이브러리 버전 충돌을 막는 도구입니다. 처음엔 번거로워 보이지만, 스크립트가 두세 개를 넘어가는 순간부터는 거의 필수에 가깝습니다.

이 글에서는 가상환경이 왜 필요한지, 어떤 상황에서 문제가 터지는지, 그리고 venv로 만들고 쓰는 순서까지 실무 예시로 정리합니다. 비전공 사무직을 위한 코딩 입문 로드맵을 따라 파이썬을 익히기 시작한 분이라면, 가상환경은 보통 두세 번째 자동화 스크립트를 만들 때쯤 맞닥뜨리게 됩니다.

왜 가상환경 없이 계속 pip install만 하면 문제가 생기나요

파이썬을 컴퓨터에 하나만 설치해서 쓰면, 모든 프로젝트가 같은 라이브러리 창고를 공유합니다. A 프로젝트에서 pandas 1.5를 쓰다가 B 프로젝트에서 pandas 2.0이 필요해 업그레이드하면, A 프로젝트가 갑자기 예전처럼 동작하지 않는 일이 생깁니다. 하나의 컴퓨터, 하나의 파이썬 환경에 모든 라이브러리를 함께 설치하기 때문에 벌어지는 충돌입니다.

사무실에서 흔히 겪는 장면으로 예를 들어보겠습니다. 지난달 만든 엑셀 취합 스크립트가 openpyxl 3.0 기준으로 잘 돌아가고 있었는데, 최근 PDF 자동화 스크립트를 만들면서 관련 라이브러리를 설치하다가 openpyxl이 자동으로 최신 버전으로 업그레이드됐습니다. 그 이후로 기존 엑셀 스크립트에서 알 수 없는 오류가 나기 시작합니다. 엑셀 반복 업무, 파이썬으로 10분 만에 끝내기에서 만든 스크립트라도, 이런 환경 문제가 생기면 코드 자체는 손대지 않아도 멈춥니다.

가상환경을 쓰면 이런 상황을 근본적으로 막을 수 있습니다. 각 프로젝트 폴더마다 독립된 파이썬 실행 환경을 두고, 그 안에서만 라이브러리를 설치하기 때문에 다른 프로젝트에 영향을 주지 않습니다.

venv로 가상환경 만들고 쓰는 순서

윈도우 명령 프롬프트나 파워셸에서 프로젝트 폴더로 이동한 뒤 다음 명령으로 가상환경을 만듭니다.

cd C:\Users\사용자명\Documents\excel_automation
python -m venv venv

이렇게 하면 폴더 안에 venv라는 하위 폴더가 생기고, 그 안에 독립된 파이썬 실행 파일과 라이브러리 저장 공간이 만들어집니다. 이제 이 가상환경을 활성화합니다.

venv\Scripts\activate

명령 프롬프트 맨 앞에 (venv)라는 표시가 붙으면 활성화가 된 것입니다. 이 상태에서 pip install을 하면 컴퓨터 전체가 아니라 이 프로젝트 폴더 안에만 라이브러리가 설치됩니다.

pip install pandas openpyxl

작업이 끝나면 deactivate 명령으로 가상환경을 빠져나올 수 있습니다. 다음에 같은 프로젝트를 열 때는 다시 activate 명령만 실행하면 그 프로젝트 전용 환경으로 돌아갑니다.

파이썬 가상환경(venv) 핵심 정리

어떤 프로젝트부터 가상환경을 적용해야 할까요

모든 스크립트에 처음부터 가상환경을 강제할 필요는 없습니다. 혼자 쓰는 짧은 스크립트 한두 개 수준이라면 굳이 나누지 않아도 큰 문제가 없습니다. 다만 다음 세 가지 중 하나라도 해당한다면 지금부터라도 프로젝트별로 나누는 것을 권합니다.

첫째, 서로 다른 라이브러리 버전이 필요한 프로젝트가 두 개 이상 생겼을 때입니다. 둘째, 비전공자를 위한 API 입문에서처럼 외부 서비스와 연동하는 requests 같은 라이브러리를 쓰는 프로젝트가 늘어날 때입니다. API 연동 라이브러리는 업데이트가 잦아 버전 충돌 가능성이 높습니다. 셋째, 나중에 다른 직원 컴퓨터에 스크립트를 옮겨 설치해야 할 때입니다. 이때는 가상환경 안에서 pip freeze > requirements.txt 명령으로 설치된 라이브러리 목록을 파일로 남기면, 다른 컴퓨터에서도 pip install -r requirements.txt 한 줄로 똑같은 환경을 그대로 재현할 수 있습니다.

반대로 아직 스크립트가 하나뿐이고 당장 다른 사람과 공유할 계획이 없다면, 가상환경 개념만 알아두고 실제 도입은 두 번째, 세 번째 스크립트를 만들 때로 미뤄도 무방합니다. 처음부터 모든 도구를 완벽하게 갖추려다 학습 자체가 부담스러워지는 경우가 많기 때문입니다.

가상환경 도입 시 자주 겪는 실수

가상환경을 활성화한 줄 알고 pip install을 했는데, 사실은 활성화가 안 된 상태여서 전역 환경에 설치되는 경우가 가장 흔합니다. 명령 프롬프트 앞에 (venv) 표시가 있는지 매번 확인하는 습관이 필요합니다. 또 하나는 venv 폴더 자체를 다른 컴퓨터로 복사해서 옮기려는 시도입니다. 가상환경 폴더에는 해당 컴퓨터의 경로 정보가 들어 있어 그대로 복사하면 대부분 동작하지 않습니다. 옮길 때는 앞서 설명한 requirements.txt 파일만 옮기고, 새 컴퓨터에서 가상환경을 새로 만들어야 합니다.

여러 프로젝트를 관리하다 보면 어떤 프로젝트가 어떤 가상환경을 쓰는지 헷갈리기 시작합니다. 이때는 자동화 스크립트, 만들고 나서가 더 중요합니다에서 다룬 자동화 로그 방식처럼, 프로젝트 폴더마다 간단한 README에 어떤 라이브러리와 버전을 쓰는지 한 줄씩 적어두면 나중에 유지보수할 때 훨씬 수월합니다.

마무리하며

가상환경은 처음 배울 때는 “왜 이런 걸 또 해야 하나” 싶은 번거로운 단계로 느껴지지만, 사무실에서 자동화 스크립트가 두 개, 세 개로 늘어나는 시점부터는 문제를 예방하는 가장 기본적인 안전장치가 됩니다. 픽셀앤코드는 양주 지역 중소기업과 관공서를 대상으로 비전공자 실무자를 위한 파이썬 자동화 교육을 진행하며, 이런 환경 설정 단계부터 실제 업무에 쓸 스크립트 제작까지 단계별로 안내하고 있습니다.