2010-08-02 4 views
0

python s3 모듈 (boto http://boto.s3.amazonaws.com/index.html) 또는 http://developer.amazonwebservices.com/connect/entry.jspa?externalID=134과 같은 타사 모듈을 사용하고 싶습니다.Python에서 모듈을 가져 오는 방법에 혼란이 있음

일단 .py 파일을 다운로드하면 어떻게해야합니까?

모듈을 가져올 때 파이썬 인터프리터는 어디에 표시됩니까?

모듈을 설치하는 '간단한'방법으로 서버에 쉽게 배포 할 수 있습니까?

답변

1

봐를 배치 할 수 있습니다. 간단한 방법은 모듈의 위치를 ​​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_cachesys.path을 처리하는 것입니다.

0

현재 작업중인 디렉토리를 찾습니다. 당신이 /test/my_file.py 내부에서 가져하려는 경우 예를 들어, the import statement reference, 길고 관련 설명에 /test/에서 모듈과 단순히 import module_name

+0

그래서 module_name은 항상 확장자가없는 파일의 이름입니까? – Blankman

+0

예. 같은 디렉토리에있는 module_name.py 파일에서'calculate_salary()'함수를 가져오고 싶다고합시다. 'from module_name import calculate_salary' 그러면'calculate_salary()'를 호출 할 수 있습니다. 'from module_name import *' 또는 'import module_name' 첫 번째 방법은 위의 그림과 같이 함수를 직접 호출 할 수 있으며 두 번째 함수는 그것을 이렇게 부른다. 'module_name.calculate_salary()' –

관련 문제