개발자/파이썬

파이썬(Python) 가상환경으로 패키지 관리하기 (feat. venv, MacOS)

june__kim 2021. 7. 15. 21:05

파이썬(Python) 가상환경으로 패키지 관리하기 (feat. venv, MacOS)

 

2021.07.12 - [개발자/42서울] - 42서울(42Seoul) 본 과정 중단 (feat. 사회적 거리두기 4단계)

 

이전 글에서 언급한 것처럼 시간적으로 여유가 조금 생겨서

내가 만들어보고 싶었던 간단한 자동화 프로그램을 만들어보려고 한다.

 

나 같은 경우엔 페이스북, 인스타같은 SNS를 거의 안 하지만,

이 계정들을 키우기 위해 자동화 프로그램을 사서 돌리는 사람들을 본 적이 있다.

 

원리는 간단해보이던데 금방 만들지 않을까? 라는 생각이 들어서 한 번 만들어보려고 한다.

 

"자동화"라는 것은 잘 쓴다면 정말 편리하기 때문에

잘 정리해놓으면 필요할 때마다 유용하게 써먹을 수 있을 것 같다.

 

 

시작에 앞서 가상환경으로 패키지를 관리하려고 한다.

 

가상환경을 사용하는 이유는 간단하게 말하면 "버전관리 문제" 때문이다.

 

예전에는 '굳이 가상환경을 만들어서 해야 하나?'라는 생각이 들었는데

Python Django 피씬을 하면서 생각이 조금 바뀌었다.

 

나중에 정말 패키지 버전이 꼬이면 힘들 것 같다는 생각이 들어서

좋은 습관 하나 들인다고 생각하고 가상환경을 이용하려 한다.

 

(참고로, 이 명령어들은 MacOS에서 작동하는 명령어들이다.

윈도우 운영체제에서는 명령어가 조금 다르다.)

 

- 가상환경 생성

# python3 -m venv 가상환경_이름
python3 -m venv venv

이 명령어를 치면 venv라는 가상환경이 생성된다.

 

- 가상환경 실행

# source 가상환경_이름/bin/activate
source venv/bin/activate

이 명령어를 치면 이제 가상환경이 실행되고 이제 하나씩 내가 필요한 패키지를 깔면 된다.

 

pip install selenium

 

이렇게 해서 일단 selenium을 깔았고 아래의 명령어를 통해 설치된 패키지를 확인 할 수 있다.

 

pip freeze

 

이렇게 보여지는 목록을 requirements.txt라는 파일에 담아

나중에 필요할 때 한 번에 설치를 할 수 있다.

 

- 가상환경 목록 만들기

pip freeze > requirements.txt

 

cf. pip list vs pip freeze

: 사실 둘 다 패키지의 목록과 버전을 보여준다.

 하지만 우리가 패키지를 한 번에 깔아야 하는 경우, 이에 맞는 형식을 pip freeze가 만들어주기 때문에 pip freeze를 써야 함.

 

- 가상환경 목록을 통해 패키지 설치

pip install -r requirements.txt

이 명령어를 통해, requirements.txt에 있는 패키지 목록들을 한 번에 설치할 수 있다.

 

- 가상환경 비활성화

deactivate

이 명령어 하나면 그냥 가상환경에서 빠져나올 수 있다.

 

 

까먹을 때마다 와서 보고 써먹어야지ㅎ