파이썬 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
어떻게해야합니까?
파이썬 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
어떻게해야합니까?
import recommendations. 왜 사용해야한다고 생각 했 reload()습니까?
reload불행히도 비 라틴 문자가있는 파일을 읽는 대부분의 "간단한 프로그램" 에는.
with open('file', 'r', encoding='utf-8') as f: do_whatever. 간단한 프로그램이나 실제로 어떤 파이썬 프로그램 에서도 모듈을 reload () 할 필요가 전혀 없습니다 .
답변:
당신은 아마 원했을 것입니다 importlib.reload().
from importlib import reload
Python 2.x에서는 내장 이었지만 3.x에서는 importlib모듈에 있습니다.
참고 사용하는 reload()인터프리터의 외부는 일반적으로 필요하지 않습니다, 당신은 무엇을 여기에서 일을하려고했다?
imp파일이 아니라 모듈입니다. (이것은 인터프리터 코어에 내장되어 있으며 어떤 파일에도 해당되지 않습니다.) 그리고 예, 사용하려면를 imp.reload가져와야 imp하지만 큰 문제는 아닙니다.
imp사용하는 곳 을 가져와야 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잊어 버릴 수 있습니다.
reload.