프로그래밍/소소한 지식

가상환경이란?

백사니 2025. 4. 14. 23:36
728x90
반응형

만약 가상환경을 만들고 사용하는 것이 궁금하다면 아래 링크에 정리해두었다.

 

가상환경 만들기 및 사용하기

이번에는 Python에서 기본으로 제공해주는 venv로 가상환경을 만들고 사용해볼 것이다. 시작하기에 앞서 만약 가상환경에 대해서 잘 모른다면 아래 링크에 자세히 정리해놓았다. 가상환경이란? 만

jinho082008.tistory.com

 

"한 프로젝트에서 특정 라이브러리 버전이 필요하고, 다른 프로젝트에서는 다른 버전이 필요할 때 가상환경을 사용하면 충돌을 피할 수 있다"

 

파이썬을 사용하다보면 라이브러리를 많이 쓰게된다. 그러다보면 각 라이브러리마다 호환되는 버전이 따로 있고 이 버전이 프로젝트마다 다른 경우가 생길 수 있다. 
만약 이러한 상황이 생길때마다 버전과 환경을 바꿔준다면 매번 귀찮고 시간 낭비를 하게될것이다. 또한 환경이 바뀌면서 예상치 못한 충돌 및 버그가 생길 수도 있다.
그렇다면 어떤 방법을 사용해야 좋을까? 

 

이러한 상황에서 필요한 것이 가상 환경이다. 
오늘은 가상환경에 대해 알아보고 어떻게 생성하고 접속하는지 알아볼것이다.


가상환경이란?
가상환경은 독립적인 패키지 설치 공간 즉, 컴퓨터 전역의 공간이 아닌 각 프로젝트만의 작은 공간이다.
때문에 가상환경에 설치된 환경은 서로의 프로젝트에 영향을 주지 않고 동작시킬 수 있다.

가상환경을 사용하게 된다면 프로젝트별로 어떤 버전의 패키지를 사용했는지 알 수 있다.
명령어 중에 현재 환경에 패키지 버전들을 기록할 수 있는 명령어가 있다. 


pip freeze > requirements.txt
해당 명령어를 사용한다면 requirements.txt 파일에 현재 패키지 버전들이 저장된다. 이후
pip install -r requirements.txt
이 명령어로 기록했던 패키지 버전들을 설치할 수 있다.

이러한 기능은 협업에서도 굉장히 중요하다.
버전이 다르다면 같은 코드이더라도 버그가 생길 수 있다.
때문에 협업을 하는 상황이라면 환경(패키지 버전)을 동일하게 사용할 필요가 있다.

이때 가상환경을 만들어서 공통의 버전 기록 파일을 다운로드 받는다면 같은 환경에서 작업을 할 수 있을 것이다.


여기서 중요한 부분이 있다.
 만약 가상환경을 사용하는 프로젝트를 GitHub를 통해 협업으로 작업을 하다면 .gitignore에 가상환경을 업로드하지 않게 추가시켜주어야한다.
 이유는 가상환경은 실제 프로젝트의 코드가 아닌 환경을 관리하는 도구이기 때문에 프로젝트로 공유할 필요가 없다. 이때 공유해야하는 것은 requirements.txt를 공유해 다른 사용자가 동일한 환경을 설치 가능하게 만들어주면 된다.

 가상환경은 패키지와 라이브러리를 저장하는 폴더이기에 크기가 매우 클 수 있다.
 때문에 GitHub로 가상환경 폴더를 공유한다는 것은 매우 비효율적일 것이다.

 각 개발자마다 기본 환경이 다를 수 있다.
 패키지와 라이브러리까지 업로드해 다른 개발자가 이를 받았을 때 업로드한 개발자와 운영체제, Python 버전 등이 다를 수 있다.
이러한 상황에서 통채로 올린 폴더는 적합하지 않을 것이다.

gitignore에 가상환경 폴더 제거하는 법
venv/
해당 코드를 gitignore에 추가하면 된다.


가상환경 관리하는 법

가상환경은 여러 도구로 관리할 수 있다. 이 중에서 대표적인 Python, Anaconda에 대해 알아보겠다.

Python
Python은 기본적으로 가상환경을 지원한다. 즉 파이썬만 있다면 가상환경을 쉽게 만들고 접속할 수 있다.
이는 추가 설치가 필요없이 Python만 있으면 되기에 매우 간단하다.
또한 Python과 완벽하게 호환해 패키지를 관리하기 편하다.
딱히 다른 도구를 설치할 필요가 없기에 가볍고 단순하다.

하지만 간단한만큼 연산이 많이 필요한 라이브러리는 관리가 힘들 수 있다.
때문에 인공지능을 학습 시키는 작업이 필요하다면 아래 Anaconda를 선택하는 것도 방법이다.

Anaconda
Anaconda는 위에 Python에서 힘들었던 데이터 분석 및 머신러닝 분야에 특화된 python 배포판이다.
conda라는 패키지 관리자를 사용해 가상환경 및 패키지를 관리할 수 있으며 기본 Python보다 기능이 많고 관리가 수월할 수 있다.
그리고 데이터 분석 및 머신러닝에 필요한 라이브러리들이 기본적으로 설치가 되어있기에 별도의 설치가 필요없다.

이렇게 기본적으로 설치되는 패키지가 많은 Anaconda는 기본적으로 꽤 큰 파일이므로 설치 크기가 상대적으로 크고 무겁다.

결론

결론적으로 간단한 프로젝트는 Python에서 지원한는 기본 venv가 적합하다.
만약 과학적 계산 및 데이터 분석, 머신러닝이 필요하다면 Anaconda를 사용하는 것이 적합하다.
이외에도 상당히 많은 도구가 있으므로 필요에 따라서 사용하면 된다.

 

이후 가상환경을 파이썬에서 만들고 접속한 뒤 라이브러리를 설치하는 과정은 아래 링크에 자세히 정리해놨다.

 

가상환경 만들기 및 사용하기

이번에는 Python에서 기본으로 제공해주는 venv로 가상환경을 만들고 사용해볼 것이다. 시작하기에 앞서 만약 가상환경에 대해서 잘 모른다면 아래 링크에 자세히 정리해놓았다. 가상환경이란? 만

jinho082008.tistory.com

 

728x90
반응형