Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 모듈은 어디에 저장될까? 모듈 저장 위치와 확인 방법

파이썬에서 외부 라이브러리나 모듈을 설치하면 대체로 파이썬 폴더 내의 /lib/site-packages 디렉터리에 저장됩니다. pip으로 설치한 패키지들도 이곳에 위치하기 때문에, 모듈 관련 문제를 해결할 때 가장 먼저 확인해야 할 경로입니다.

파이썬이 모듈을 찾는 경로 확인하기

파이썬은 모듈을 import할 때 여러 디렉터리를 순서대로 검색합니다. 어떤 경로들이 검색 대상에 포함되어 있는지 궁금하다면 sys 모듈의 path 변수를 출력해 보면 됩니다.

>>> import sys
>>> print(sys.path)
['', 'C:\\Python27', 'C:\\Python27\\Lib\\site-packages', 'C:\\Python27\\Lib', 'C:\\Python27\\DLLs', 'C:\\Python27\\Lib\\lib-tk', 'C:\\Python27\\Scripts', 'C:\\WINDOWS\\SYSTEM32\\python27.zip', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\site-packages\\win32', 'C:\\Python27\\lib\\site-packages\\win32\\lib', 'C:\\Python27\\lib\\site-packages\\Pythonwin']

출력 결과를 살펴보면 다음과 같은 항목들이 포함되어 있는 것을 알 수 있습니다.

  • 빈 문자열(''): 현재 작업 중인 디렉터리를 의미합니다. 스크립트가 실행되는 위치가 우선적으로 검색됩니다.
  • 표준 라이브러리 경로: 파이썬 설치 시 기본으로 포함된 내장 모듈들이 있는 곳입니다.
  • site-packages: pip 등으로 설치한 서드파티 패키지들이 저장되는 디렉터리입니다.

python -v 옵션으로 모듈 로딩 과정 추적하기

특정 스크립트가 사용하는 개별 모듈들이 시스템상 어느 위치에 있는지 확인하고 싶다면 python -v 명령어를 활용할 수 있습니다. 예를 들어 scrapy 모듈을 import하는 간단한 스크립트를 실행해 보겠습니다.

PS C:\Users\Ayush> echo 'import scrapy' > hello.py
PS C:\Users\Ayush> python -v hello.py
# installing zipimport hook
import zipimport # builtin
# installed zipimport hook
# C:\Python27\Lib\site.pyc matches C:\Python27\Lib\site.py
import site # precompiled from C:\Python27\Lib\site.pyc
# C:\Python27\Lib\os.pyc matches C:\Python27\Lib\os.py
...
...

-v(verbose) 옵션을 붙여 실행하면 파이썬 인터프리터가 시작되면서 어떤 모듈을 어느 경로에서 불러오는지 상세한 로그가 출력됩니다. 이를 통해 해당 스크립트가 실제로 참조하는 모듈의 정확한 파일 위치를 파악할 수 있으며, 버전 충돌이나 잘못된 모듈 로딩 문제를 디버깅할 때 특히 유용합니다.

참고: PYTHONPATH 환경 변수

기본 경로 외에 직접 지정한 디렉터리에서 모듈을 불러오고 싶다면 PYTHONPATH 환경 변수를 설정하면 됩니다. 이 변수에 추가한 경로 역시 sys.path 목록에 자동으로 반영되므로, 커스텀 모듈을 관리할 때 활용하면 좋습니다.