본문 바로가기
Python/Python FAQ

내 Python site-packages 디렉토리의 위치를 어떻게 찾을 수 있나요?, How do I find the location of my Python site-packages directory?

by 베타코드 2023. 5. 24.
반응형

질문


site-packages 디렉토리의 위치를 어떻게 찾을 수 있나요?


답변


사이트 패키지 디렉토리에는 전역사용자별 두 가지 유형이 있습니다.

  1. 전역 사이트 패키지("dist-packages") 디렉토리는 다음을 실행할 때 sys.path에 나열됩니다:

     python -m site
    

    더 간결한 목록을 원하면 Python 코드에서 site 모듈에서 getsitepackages를 실행합니다:

     python -c 'import site; print(site.getsitepackages())'
    

    경고: 가상 환경에서는 virtualenv의 이전 버전에서는 getsitepackages를 사용할 수 없으며, 위의 sys.path는 가상 환경의 사이트 패키지 디렉토리를 올바르게 나열합니다. Python 3에서는 대신 sysconfig 모듈을 사용할 수 있습니다:

     python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])'
    
  2. 사용자별 사이트 패키지 디렉토리(PEP 370)는 Python이 로컬 패키지를 설치하는 위치입니다:

     python -m site --user-site
    

    이것이 존재하지 않는 디렉토리를 가리키면 Python의 종료 상태를 확인하고 python -m site --help를 참조하여 설명을 확인하십시오.

    힌트: pip list --user 또는 pip freeze --user를 실행하면 모든 설치된 사용자별 사이트 패키지의 목록을 얻을 수 있습니다.


실용적인 팁

  • <패키지>.__path__를 사용하면 특정 패키지의 위치를 식별할 수 있습니다: (자세한 내용)

      $ python -c "import setuptools as _; print(_.__path__)"
      ['/usr/lib/python2.7/dist-packages/setuptools']
    
  • <모듈>.__file__을 사용하면 특정 모듈의 위치를 식별할 수 있습니다: (차이점)

      $ python3 -c "import os as _; print(_.__file__)"
      /usr/lib/python3.6/os.py
    
  • pip show <패키지>를 실행하여 Debian-style 패키지 정보를 표시합니다:

      $ pip show pytest
      Name: pytest
      Version: 3.8.2
      Summary: pytest: simple powerful testing with Python
      Home-page: https://docs.pytest.org/en/latest/
      Author: Holger Krekel, Bruno Oliveira, Ronny Pfannschmidt, Floris Bruynooghe, Brianna Laugher, Florian Bruhin and others
      Author-email: None
      License: MIT license
      Location: /home/peter/.local/lib/python3.4/site-packages
      Requires: more-itertools, atomicwrites, setuptools, attrs, pathlib2, six, py, pluggy
    
반응형

댓글