[python] 파이썬의 사이트 패키지 디렉토리는 무엇입니까?

디렉토리 site-packages는 다양한 Python 관련 기사에서 언급됩니다. 뭔데? 사용 방법?



답변

site-packages수동으로 빌드 된 Python 패키지 의 대상 디렉토리 입니다. 소스에서 Python 패키지를 빌드하고 설치할 때 ( distutils 사용 , 아마도를 실행하여 python setup.py install) site-packages기본적으로 설치된 모듈을 찾을 수 있습니다.

표준 위치가 있습니다.

  • Unix (순수) 1 :prefix/lib/pythonX.Y/site-packages
  • Unix (비 순수) : exec-prefix/lib/pythonX.Y/site-packages
  • Windows : prefix\Lib\site-packages

1 Pure 는 모듈이 Python 코드 만 사용함을 의미합니다. 순수하지 않은 것은 C / C ++ 코드도 포함 할 수 있습니다.

site-packages기본적으로 Python 검색 경로의 일부 이므로 여기에 설치된 모듈을 나중에 쉽게 가져올 수 있습니다.


유용한 읽기


답변

--userpip와 함께 옵션 을 사용 하면 패키지가 전역 폴더가 아닌 사용자 폴더에 설치되며 관리자 권한으로 pip 명령을 실행할 필요가 없습니다.

사용자의 패키지 폴더 위치는 다음을 사용하여 찾을 수 있습니다.

python -m site --user-site

다음과 같이 인쇄됩니다.

C:\Users\%USERNAME%\AppData\Roaming\Python\Python35\site-packages

--userpip와 함께 옵션을 사용하지 않으면 패키지는 다음과 같은 전역 폴더에 설치됩니다.

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

다음과 같이 인쇄됩니다.

['C:\\Program Files\\Anaconda3', 'C:\\Program Files\\Anaconda3\\lib\\site-packages'

참고 : 위에 인쇄 된 값은 기본값으로 설치된 Anaconda 4.x가 설치된 Windows 10에 대한 것입니다.


답변

site-packages는 Python이 모듈을 설치하는 위치 일뿐입니다.

“찾을”필요가 없습니다. 파이썬은 스스로 찾을 위치를 알고 있습니다.이 위치는 항상 PYTHONPATH (sys.path)의 일부입니다.

프로그래밍 방식으로 다음과 같이 찾을 수 있습니다.

import sys
site_packages = next(p for p in sys.path if 'site-packages' in p)
print site_packages

‘/Users/foo/.envs/env1/lib/python2.7/site-packages’


답변