봐를 배치 할 수 있습니다. 간단한 방법은 모듈의 위치를 sys.path
에 포함시키는 것입니다.
난 단지 시작 단락을 인용하고 있습니다 : 모듈의 이름이 알려지면
을 모듈 검색 (달리 명시되지 않는 한, 용어 "모듈"두 패키지와 모듈을 참조합니다) 또는 패키지를 시작할 수 있습니다. 확인 된 첫 번째 장소는 이전에 가져온 모든 모듈의 캐시 인 sys.modules
, 입니다. 모듈이 발견되면 가져 오기의 단계 (2)에서 사용됩니다.
모듈이 캐시에서 발견되지 않으면, 다음 sys.meta_path
가 검색된다 (sys.meta_path
대한 명세가 PEP (302)에서 찾을 수있다). 객체는 자신의 find_module()
메소드를 모듈의 이름으로 호출하여 모듈을로드하는 방법을 알고 있는지 여부에 대해 순서대로 쿼리되는 파인더 객체 목록입니다. 모듈이 패키지 내에 포함 된 경우 (이름에 점의 존재로 표시됨) find_module()의 두 번째 인수는 부모 패키지의 경로 속성의 값으로 제공됩니다 가져올 모듈의 이름에서 마지막 점까지). 파인더가 모듈을 찾을 수 있으면 나중에 설명 할 로더를 반환하거나 None을 반환합니다.
sys.meta_path
의 파인더가 모듈을 찾을 수 없으면 암시 적으로 정의 된 파인더가 쿼리됩니다. 파이썬의 구현은 암시적인 메타 경로 파인더가 정의하는 것과 다릅니다. 그러나 모두 정의한 것은 sys.path_hooks
, sys.path_importer_cache
및 sys.path
을 처리하는 것입니다.
그래서 module_name은 항상 확장자가없는 파일의 이름입니까? – Blankman
예. 같은 디렉토리에있는 module_name.py 파일에서'calculate_salary()'함수를 가져오고 싶다고합시다. 'from module_name import calculate_salary' 그러면'calculate_salary()'를 호출 할 수 있습니다. 'from module_name import *' 또는 'import module_name' 첫 번째 방법은 위의 그림과 같이 함수를 직접 호출 할 수 있으며 두 번째 함수는 그것을 이렇게 부른다. 'module_name.calculate_salary()' –