sys.path 2

-m 실행 옵션과 __name__

Python 관련 글들을 보다 보면 스크립트를 실행시킬 때 어떤 때는 python3 script.py처럼 실행시키고, 어떤 때는 python3 -m script처럼 -m 옵션을 사용해서 실행시킬 때가 있습니다. 차이는 무엇일까요? 전자는 script.py를 실행시키는 것이고, 후자는 script라는 이름의 모듈을 sys.path에서 찾아서 실행시키는 것입니다. sys.path에 대한 설명은 알쏭달쏭 Python import - sys.path을 참고하세요. 오늘도 간략한 예시를 들어서 알아보겠습니다. 1. 간단한 함수부터 아래와 같은 Python 코드를 만들고 있다고 가정해보겠습니다. 주어진 문자열 주위를 아름답고 화려한 *으로 감싸주는 코드입니다. import sys def print_with_bord..

Python 2020.05.28

venv는 내부적으로 어떻게 작동할까?

Python의 모듈 간 의존성 문제를 해결하기 위해서 virtualenv나 venv를 많이 사용하실 겁니다. 시스템에 설치된 모듈들과 virtual environment 내에 설치된 모듈들을 분리해주기 때문에 모듈들이 꼬일 걱정 없이 사용할 수 있어서 참 좋습니다. 개인적으로 저는 새 Python 프로젝트를 시작하면 venv와 git 초기화를 꼭 실행합니다. 그런데 가끔 내부적으로 어떻게 이 기능이 작동하는지 궁금할 때가 있습니다. 그래서 오늘은 venv가 어떻게 작동하는지 한번 알아보겠습니다. (virtualenv도 작동 방식은 거의 동일합니다.) 1. venv를 만들자 먼저 아래 명령으로 virtual environment를 만듭니다. python3 -m venv env 그럼 현재 디렉터리에 env ..

Python 2020.05.19