developer tip

importlib.import_module을 사용하여 Python에서 모듈을 가져 오는 방법

copycodes 2020. 12. 30. 08:19
반응형

importlib.import_module을 사용하여 Python에서 모듈을 가져 오는 방법


importlib.import_modulePython 2.7.2에서 사용하려고하는데 이상한 오류가 발생합니다.

다음 dir 구조를 고려하십시오.


    |
    +-__init__.py
      -b
        |
        +-__init__.py
          -c.py

a/b/__init__.py 다음 코드가 있습니다.

    import importlib

    mod = importlib.import_module ( "c")

(실제 코드 "c"에는 이름이 있습니다.)

을 시도 import a.b하면 다음 오류가 발생합니다.

    >>> 수입 ab
    역 추적 (가장 최근 호출 마지막) :
      파일 "", 줄 1, in 
      파일 "a / b / __ init__.py", 3 행, in 
        mod = importlib.import_module ( "c")
      import_module의 파일 "/opt/Python-2.7.2/lib/python2.7/importlib/__init__.py", 37 행
        __import __ (이름)
    ImportError : c라는 모듈이 없습니다.

내가 무엇을 놓치고 있습니까?

감사!


상대적 수입의 경우 다음을 수행해야합니다.

  • a) 상대 이름 사용
  • b) 명시 적으로 앵커 제공

    importlib.import_module('.c', 'a.b')
    

물론, 대신 절대 가져 오기를 수행 할 수도 있습니다.

importlib.import_module('a.b.c')

importlib.import_module('.c', __name__)에 대해 알 필요가 없기 때문에 사용하는 것이 더 좋습니다 .ab

나는 또한 당신이 사용해야한다면 importlib.import_module('a.b.c')왜 그냥 사용하지 않는지 궁금합니다 import a.b.c.


그리고 __init__.py각 폴더 / 하위 폴더 를 만드는 것을 잊지 마십시오 (비어 있더라도)

참조 URL : https://stackoverflow.com/questions/10675054/how-to-import-a-module-in-python-with-importlib-import-module

반응형