반응형
NameError를주는 모듈을 다시로드하는 중 : 이름 'reload'가 정의되지 않았습니다.
파이썬 3에서 이미 가져온 모듈을 다시로드하려고합니다. 한 번만 가져 와서 import
명령을 다시 실행하면 아무것도하지 않는다는 것을 알고 있습니다.
실행 reload(foo)
하면 다음과 같은 오류가 발생합니다.
Traceback (most recent call last):
File "(stdin)", line 1, in (module)
...
NameError: name 'reload' is not defined
오류는 무엇을 의미합니까?
reload
파이썬 2에는 내장되어 있지만 파이썬 3에는 내장되어 있지 않으므로 오류가 예상됩니다.
Python 3에서 모듈을 다시로드 해야하는 경우 다음 중 하나를 사용해야합니다.
importlib.reload
Python 3.4 이상imp.reload
Python 3.0 ~ 3.3 (Python 3.4부터 사용되지 않음importlib
)
> = 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)
외부 라이브러리를 사용하지 않으려면 한 가지 해결책은 다음과 같이 Python 3의 Python 2에서 reload 메소드를 다시 작성하는 것입니다. 모듈 상단에서 이것을 사용하십시오 (python 3.4+로 가정).
import sys
if(sys.version_info.major>=3):
def reload(MODULE):
import importlib
importlib.reload(MODULE)
python 파일을 구성 파일로 사용하고 응용 프로그램을 다시 시작하지 않으려면 BTW 다시로드가 매우 필요합니다.
반응형
'Programing' 카테고리의 다른 글
힘내 하위 모듈 추가 : "git 디렉토리가 로컬에서 발견되었습니다"문제 (0) | 2020.06.09 |
---|---|
PowerShell에서 MD5 체크섬을 얻는 방법 (0) | 2020.06.09 |
문자열의 시작과 끝에서 공백 자르기 (0) | 2020.06.09 |
UITableView, 구분자 색은 어디에 설정합니까? (0) | 2020.06.09 |
Bash의 문자열에서 마지막 n 문자를 제거하는 방법은 무엇입니까? (0) | 2020.06.09 |