[python] NameError : ‘reload’이름이 정의되지 않았습니다.

파이썬 3.2.2를 사용하고 있습니다. 간단한 프로그램을 작성하면 문제가 발생합니다.

>>> reload(recommendations)
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    reload(recommendations)
NameError: name 'reload' is not defined

어떻게해야합니까?



답변

당신은 아마 원했을 것입니다 importlib.reload().

from importlib import reload

Python 2.x에서는 내장 이었지만 3.x에서는 importlib모듈에 있습니다.

참고 사용하는 reload()인터프리터의 외부는 일반적으로 필요하지 않습니다, 당신은 무엇을 여기에서 일을하려고했다?


답변

@Gareth Latty의 답변에 대한 업데이트. impPython 3.4에서 감가 상각되었습니다. 이제 원하는 importlib.reload().

from importlib import reload


답변

시도해보십시오 importlib.reload.

이전에 가져온 모듈을 다시로드합니다. 인수는 모듈 객체 여야하므로 이전에 성공적으로 가져 왔어 야합니다. 이것은 외부 편집기를 사용하여 모듈 소스 파일을 편집하고 Python 인터프리터를 떠나지 않고 새 버전을 사용해보고자 할 때 유용합니다.

from importlib import reload

reload(module_name)


답변

다른 사람들이 말했듯이, 당신은 둘 중 하나 importlib.reload(module)가 필요합니다 from importlib import reload. 그러나 from importlib import reload초기화 파일 에서을 숨길 수 있습니다 . PYTHONSTARTUP셸에 정의되어 있는지 확인하십시오 . 예를 들면

export PYTHONSTARTUP=$HOME/python/startup.py

합리적인 선은 당신에 추가 할 수있는 ~/.bash_profile쉘은 bash는, 그리고 당신이 당신의 파이썬 파일을 저장하는 위치에 따라 경우. (이 지침을 따르고 있다면이 지점에서 새 터미널 창을 시작하여 라인이 실행되도록하십시오.) 그런 다음 라인을 넣을 수 있습니다.

from importlib import reload

~/python/startup.py와 자동으로 발생합니다. (다시 따라가는 중이라면이 시점에서 새로운 파이썬 세션을 시작하십시오.)이 문제를 해결하기 위해 약간 복잡해 보일 수 있지만 한 번만 수행 한 다음 모든 유사한 문제에 대해 수행하면됩니다. “나는 파이썬이 항상 이것을하기를 바란다”라는 줄을 따라, 일단 해결책을 찾으면 그것을 넣고 ~/python/startup.py잊어 버릴 수 있습니다.


답변