일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- cloudformation
- monolithic
- CDK
- 관측일지
- Ethereum
- MSA
- 천체관측
- virtualenv
- 벌집성단
- terraform
- package.json
- 이더리움
- Blockchain
- dunder
- Argument
- MicroService
- 파이썸
- function
- KSP2
- 얼리억세스
- 가상환경
- 비트코인
- Bitcoin
- python
- 블록체인
- 패키지 매니저
- 커벌스페이스프로그램
- 개발환경
- 파이썬
- 혼공파
ulismoon
[Python] 독립적인 가상의 파이썬 실행환경, virtualenv (2) 본문
PATH?
이전 글에서 virtualenv 사용법을 알아봤는데, 과연 그래서 무슨 PATH를 어떻게 손본다는걸까?
우리가 쉘에서 그냥 명령어 두들겨서 쓸 수 있는 프로그램들은 각종 bin 디렉터리 안에 들어있다.
터미널에서야 그냥 아무 생각 없이 쓰지만 그게 다 이미 어디있는걸 갖다 쓰라는 설정이 돼있다는 말이다.
파이썬을 예로 들어보자. 터미널에서 그냥 파이썬을 두들기면 파이썬 대화형 인터프리터가 실행된다. 여튼 무슨 프로그램이 실행됐다는 건데...
파이썬 명령어가 어디 있는지 which 명령어로 확인해보니 /usr/bin 안에 있다고 한다. 그럼 저런 것들은 어디에 모여있을까?
답은 여기 있다. $PATH 변수를 찾아보자.
오 뭔가 엄청 많은 경로들이 콜론(:)으로 구분돼있다. 저 중간 어디 보니까 /usr/bin 도 있네. 이제 감이 좀 오는가? 저기 있는 저 path들을 뒤적뒤적하면서 해당하는 프로그램이 있으면 실행시키는 거다. 근데 진짜 저기 파이썬이 있을까?
virtualenv의 역할
맨 앞에 저거 보이심? virtualenv를 활성화시키니까 .venv/bin이 PATH에 추가되었다. 이제 그러면 환경변수는 여기가 최우선이 되겠지 왜? 앞에 있으니까.
따라서 virtualenv가 켜져있는 이상 모든 파이썬 관련 명령의 기준은 내가 생성한 virtualenv 디렉터리가 될 것이며,패키지 설치도 이 디렉터리를 기준으로 할 것이기 때문에 저 어딘가에 설치가 된다. 확인해보자.
패키지가 요기잉네? 그러면 다른 버전을 깔아놓은 project_2에는 다른 버전이 있겠지?
보이는가 1.0과 0.9의 차이가? 완전히 독립된 곳에 두 개의 버전 다른 라이브러리가 존재하고 있다. virtualenv는 이런 방식으로 우리에게 꿀같은 가상 개발환경을 만들어주고 있다. 감사히 무조건 쓰자 ㅋㅋ
tl;dr
우리가 실행하는 명령어는 각종 bin 안에 담겨있고, 이는 $PATH라는 변수에 모여있다.
virtualenv는 우리가 만든 가상환경 디렉터리를 $PATH 최전방에 삽입해 환경을 슬쩍 바꿔치기한다.
virtualenv를 알맞은 곳에서 알맞게 활성화/비활성화한다면 우리는 패키지 꼬일 걱정 없이 개발에 집중할 수 있다.
ps. 윈도우의 경우 저런 것들이 %PATH% 변수 안에 들어있다. cmd에서 확인할 수 있다.
'Development' 카테고리의 다른 글
IaC - MSA 와 AWS CDK: 코딩을 통한 직관적인 IaC (0) | 2022.04.15 |
---|---|
[Python3] Extended Iterable Unpacking - 어-썸한 파이썬의 맛을 보아라 (0) | 2017.04.27 |
[Python 2/3] dict() 안의 key 찾기...에서 시작한 dict key의 생김새 톺아보기 (0) | 2017.03.16 |
[Python] Function Argument (0) | 2016.06.22 |
[Python] 독립적인 가상의 파이썬 실행환경, virtualenv (1) (2) | 2016.05.12 |