site-packages 디렉토리

About_work·2024년 3월 5일
0

cs 기초

목록 보기
28/38
  • site-packages 디렉토리는 Python에서 설치된 패키지와 모듈을 저장하는 장소
  • 이 디렉토리는 시스템의 Python 설치 또는 가상 환경 내에 위치
  • Python이 패키지를 임포트할 때 참조하는 기본 경로 중 하나

  • Python을 설치하면, 표준 라이브러리 외에 추가적인 패키지를 설치할 필요가 종종 있습니다.
  • pip install 명령을 사용하여 설치한 패키지들은 대부분 이 site-packages 디렉토리에 복사되고 저장
  • 이를 통해 Python 프로그램은 import 문을 사용하여 이러한 패키지를 쉽게 불러올 수 있습니다.

site-packages 위치 찾기

  • site-packages 디렉토리의 정확한 위치는 시스템의 Python 설치 방식과 사용 중인 가상 환경에 따라 달라질 수 있습니다.
  • 현재 환경에서 site-packages 디렉토리의 위치를 확인하려면, Python 인터프리터에서 다음 명령을 실행할 수 있습니다:
import site; print(site.getsitepackages())
  • 이 명령은 시스템에 설치된 모든 site-packages 디렉토리의 경로를 리스트로 출력합니다.

가상 환경과 site-packages

  • 가상 환경을 사용하는 경우, 각 가상 환경은 독립적인 site-packages 디렉토리를 가집니다.
  • 이는 가상 환경이 시스템의 전역 Python 설치와 분리되어 있음을 의미
  • 가상 환경 내에서 설치한 패키지는 해당 환경의 site-packages 디렉토리에만 저장되므로, 다른 환경이나 시스템의 전역 설치에는 영향을 주지 않습니다.

시스템 Python 설치 VS virtualenv

  • "시스템의 Python 설치 또는 가상 환경(virtualenv) 내에 위치"란 site-packages 디렉토리가 두 가지 주요 환경 중 하나에 위치할 수 있음을 의미
  • 시스템 전체에 설치된 Python 환경 또는 개별적으로 생성된 가상 환경 내부.

시스템 Python 설치의 site-packages

  • 시스템 Python 설치는 컴퓨터의 운영 체제에 Python을 설치하는 것을 의미
    • 이 경우, site-packages 디렉토리는 Python이 시스템 레벨로 설치된 곳에 위치합니다.
  • 시스템 Python 설치에서 site-packages 디렉토리의 예상 위치는 다음과 같습니다:
    • Windows: C:\PythonXX\Lib\site-packages (여기서 XX는 Python 버전을 나타냅니다)
    • macOS/Linux: /usr/local/lib/pythonX.X/site-packages 또는 /usr/lib/pythonX.X/site-packages (여기서 X.X는 Python 버전을 나타냅니다)

가상 환경(virtualenv)의 site-packages

  • 가상 환경(virtualenv)은 Python 프로젝트의 의존성을 프로젝트별로 격리하기 위해 사용
  • 각 가상 환경은 독립된 Python 인스턴스를 제공하며, 각각의 site-packages 디렉토리를 포함
  • 가상 환경을 사용할 때, site-packages 디렉토리는 해당 가상 환경 내에 위치
  • 가상 환경은 일반적으로 프로젝트 디렉토리 내부에 생성되거나 사용자가 지정한 다른 위치에 생성될 수 있습니다.
  • 예를 들어, my_project라는 가상 환경이 있다면, site-packages 디렉토리의 예상 위치는 다음과 같습니다:
    • Windows: my_project\Lib\site-packages
    • macOS/Linux: my_project/lib/pythonX.X/site-packages (여기서 X.X는 Python 버전을 나타냅니다)

pip install -e . 를 수행하지 않아도, 특정 리포지토리의 a 모듈 안에서 import 문으로 특정 리포지토리의 b 모듈을 불러올 수 있던데?

profile
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.

0개의 댓글