복붙노트

[PYTHON] NameError를주는 모듈을 다시로드하고 있습니다 : 'reload'이름이 정의되지 않았습니다.

PYTHON

NameError를주는 모듈을 다시로드하고 있습니다 : 'reload'이름이 정의되지 않았습니다.

파이썬 3에서 이미 가져온 모듈을 다시로드하려고합니다. 한 번만 가져와야하고 가져 오기 명령을 다시 실행하면 아무 것도 할 수 없다는 것을 알고 있습니다.

reload (foo)를 실행하면이 오류가 발생합니다.

Traceback (most recent call last):
    File "(stdin)", line 1, in (module)
    ...
NameError: name 'reload' is not defined

오류는 무엇을 의미합니까?

해결법

  1. ==============================

    1.reload는 Python 2에 내장되어 있지만 Python 3에는 포함되어 있지 않으므로보고있는 오류가 예상됩니다.

    reload는 Python 2에 내장되어 있지만 Python 3에는 포함되어 있지 않으므로보고있는 오류가 예상됩니다.

    파이썬 3에서 모듈을 정말로 다시로드해야한다면, 다음 중 하나를 사용해야합니다 :

  2. ==============================

    2.> = Python3.4 :

    > = Python3.4 :

    import importlib
    importlib.reload(module)
    

    <= Python3.3 :

    import imp
    imp.reload(module)
    

    Python2.x의 경우 :

    내장 된 reload () 함수를 사용하십시오.

    reload(module)
    
  3. ==============================

    3.

    import imp
    imp.reload(script4)
    
  4. ==============================

    4.이전에 작성된 답변을 확장하려면 파이썬 버전 2와 3에서 작동 할 단일 솔루션을 원할 경우 다음을 사용할 수 있습니다.

    이전에 작성된 답변을 확장하려면 파이썬 버전 2와 3에서 작동 할 단일 솔루션을 원할 경우 다음을 사용할 수 있습니다.

    try:
        reload  # Python 2.7
    except NameError:
        try:
            from importlib import reload  # Python 3.4+
        except ImportError:
            from imp import reload  # Python 3.0 - 3.3
    
  5. ==============================

    5.모든 파이썬 버전에서 작동하는 다음 스 니펫을 사용하는 것이 좋습니다 (6 개 필요).

    모든 파이썬 버전에서 작동하는 다음 스 니펫을 사용하는 것이 좋습니다 (6 개 필요).

    from six.moves import reload_module
    reload_module(module)
    
  6. ==============================

    6.python2 및 python3과의 호환성을 위해 다음을 사용할 수 있습니다.

    python2 및 python3과의 호환성을 위해 다음을 사용할 수 있습니다.

    # Python 2 and 3
    from imp import reload
    reload(mymodule)
    
  7. ==============================

    7.__builtins__ 변수를 삭제했습니다.

    __builtins__ 변수를 삭제했습니다.

    이 문제를 해결하는 방법? __builtins__을 삭제하지 마십시오.

    Python이 "reload"함수를 찾을 수 없다는 뜻입니다.

    이것은 잘못되었습니다. "import script4"를 수행했다면 "reload (script4)"를 수행해야합니다.

  8. from https://stackoverflow.com/questions/961162/reloading-module-giving-nameerror-name-reload-is-not-defined by cc-by-sa and MIT license