Python의 sys.path는 어디에서 초기화됩니까?
Python이 가져올 모듈을 검색하는 디렉터리가 포함된 Python의 sys.path, 초기 값을 결정하기 위해 복잡한 초기화 프로세스를 거칩니다. 설정 방법은 다음과 같습니다.
sys.executable 결정
- Python은 파일 시스템에서 물리적 위치를 찾아 이를 sys 값으로 사용합니다. .executable.
sys.exec_prefix 및 sys.prefix 초기화
sys.path 초기화
- Python은 실행 중인 스크립트의 디렉터리를 sys.path에 추가합니다.
- Linux/Mac에서는 설정된 경우 PYTHONPATH 환경 변수를 추가합니다.
- 다음을 포함합니다. zip 파일 경로(/lib/python35.zip 또는 path/to/python.zip).
- Windows에서 pyvenv.cfg에 "applocal = true"가 없으면 "HK_CURRENT_USERSoftwarePythonPythonCore<에서 하위 키를 추가합니다. ;DLLVersion>PythonPath."
- Windows에서 pyvenv.cfg에 "applocal = true"가 없고 sys.prefix가 없으면 "HK_CURRENT_USERSoftwarePythonPythonCorePythonPath의 "핵심 내용"을 추가합니다. "
- Windows에서 pyvenv.cfg에 "applocal = true"가 없으면 "HK_LOCAL_MACHINESoftwarePythonPythonCorePythonPath"의 하위 키를 추가합니다.
- Windows에서 pyvenv에 "applocal = true"가 없으면 .cfg, 그리고 sys.prefix가 발견되지 않은 경우 "HK_LOCAL_MACHINESoftwarePythonPythonCorePythonPath"의 "핵심 내용"을 추가합니다.
- Windows에서 PYTHONPATH가 설정되지 않고 접두사가 없으며 레지스트리 키가 없습니다. 현재는 PYTHONPATH의 상대 컴파일 시간 값을 추가합니다.
- 동적으로 발견된 sys.prefix를 기준으로 PYTHONPATH 컴파일 시간 매크로의 경로를 통합합니다.
- Linux/Mac의 경우, sys.exec_prefix를 추가합니다. Windows에서는 sys.prefix를 검색하는 데 사용되는 디렉터리를 추가합니다.
- Windows에서는 pyvenv.cfg에 "applocal = true"가 없으면 sys.path에서 랜드마크 파일을 찾아 sys.prefix를 찾으려고 시도합니다. . 실패하면 sys.prefix를 비워 둡니다.
사이트 모듈에 의한 추가 수정
- 사이트 모듈은 다음을 추가하여 sys.path를 추가로 수정합니다. sys.prefix, sys.exec_prefix 및 플랫폼별 경로를 기반으로 하는 디렉터리.
- 이러한 새 경로에서 구성 파일을 검사하여 잠재적으로 더 많은 경로를 추가합니다.
위 내용은 Python은 sys.path 목록을 어떻게 초기화합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!