NameError를 제공하는 모듈을 다시 로드하는 중: 이름 'reload'가 정의되지 않았습니다.
이미 Python 3에서 가져온 모듈을 다시 로드하려고 합니다.한 번만 가져와서 실행하면 된다는 것을(를)import
다시 명령해도 아무 소용이 없습니다.
실행 중reload(foo)
다음 오류가 발생합니다.
Traceback (most recent call last):
File "(stdin)", line 1, in (module)
...
NameError: name 'reload' is not defined
오류의 의미는 무엇입니까?
reload
는 Python 2에는 내장되어 있지만 Python 3에는 내장되어 있지 않기 때문에 현재 보이는 오류가 예상됩니다.
Python 3에서 모듈을 다시 로드해야 하는 경우 다음 중 하나를 사용해야 합니다.
importlib.reload
Python 3.4 이상의 경우imp.reload
Python 3.0 ~ 3.3의 경우(Python 3.4 이후에는 사용되지 않음)
>= Python3의 경우.4:
import importlib
importlib.reload(module)
<= Python3의 경우.3:
import imp
imp.reload(module)
Python2의 경우.x:
내장된 기능reload()
기능.
reload(module)
import imp
imp.reload(script4)
이전에 작성한 답변을 확장하려면 Python 버전 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
다음 스니펫은 모든 파이썬 버전에서 작동하기 때문에 사용하는 것이 좋습니다.six
):
from six.moves import reload_module
reload_module(module)
python2 및 python3 호환성을 위해 다음을 사용할 수 있습니다.
# Python 2 and 3
from imp import reload
reload(mymodule)
외부 lib를 사용하지 않으려면 아래와 같이 python 2에서 python 3에 대한 reload 방법을 다시 만드는 것이 한 가지 해결책입니다.모듈의 맨 위에 이를 사용합니다(파이썬 3.4+로 가정).
import sys
if(sys.version_info.major>=3):
def reload(MODULE):
import importlib
importlib.reload(MODULE)
Python 파일을 구성 파일로 사용하고 애플리케이션을 다시 시작하지 않으려면 BTW 다시 로드가 매우 필요합니다.
언급URL : https://stackoverflow.com/questions/961162/reloading-module-giving-nameerror-name-reload-is-not-defined
'programing' 카테고리의 다른 글
이클립스가 새 플러그인을 다운로드할 수 있도록 프록시 설정을 구성하려면 어떻게 해야 합니까? (0) | 2023.05.23 |
---|---|
커밋을 병합하지 않고 변경 사항을 단일 파일로 병합하려면 어떻게 해야 합니까? (0) | 2023.05.23 |
변경된 입력 텍스트 상자 탐지 (0) | 2023.05.23 |
Linux Bash에서 더블 앰퍼샌드(&&)와 세미콜론(;)의 차이점은 무엇입니까? (0) | 2023.05.23 |
날짜 시간입니다.기능의 성능을 측정하는 가장 좋은 방법은 무엇입니까? (0) | 2023.05.23 |