728x90
반응형
질문 : Python Interpreter에서 업데이트 된 패키지를 다시 가져 오는 방법은 무엇입니까?
나는 종종 Python Interpreter에서 내 모듈을 테스트하고 오류가 표시되면 .py 파일을 빠르게 업데이트합니다. 하지만 통역사에게 어떻게 반영해야합니까? 지금까지 파일을 다시 가져 오는 것이 작동하지 않기 때문에 통역사를 종료했다가 다시 입력했습니다.
답변
Python3 업데이트 : (마지막 편집 / 주석이 더 이상 사용되지 않는 방법을 제안했기 때문에 이미 답변 된 답변에서 인용)
Python 3에서 reload
imp
모듈로 이동되었습니다. 3.4에서 imp
importlib
대신 사용되지 않으며 reload
는 후자에 추가되었습니다. 3 이상을 대상으로하는 경우 reload
호출 할 때 적절한 모듈을 참조하거나 가져 오십시오.
요약 :
- Python3> = 3.4 :
importlib.reload(packagename)
- Python3 <3.4 :
imp.reload(packagename)
- Python2 : 아래 계속
reload
내장 기능을 사용하십시오.
https://docs.python.org/2/library/functions.html#reload
reload(module)
실행시 :
- Python 모듈의 코드가 다시 컴파일되고 모듈 수준 코드가 다시 실행되어 모듈 사전의 이름에 바인딩 된 새 개체 집합을 정의합니다. 확장 모듈의 초기화 기능은 두 번째로 호출되지 않습니다.
- Python의 다른 모든 객체와 마찬가지로 이전 객체는 참조 횟수가 0으로 떨어진 후에 만 회수됩니다.
- 모듈 네임 스페이스의 이름은 새롭거나 변경된 개체를 가리 키도록 업데이트됩니다.
- 이전 개체에 대한 다른 참조 (예 : 모듈 외부의 이름)는 새 개체를 참조하도록 리 바인드되지 않으며 원하는 경우 발생하는 각 네임 스페이스에서 업데이트해야합니다.
예:
# Make a simple function that prints "version 1"
shell1$ echo 'def x(): print "version 1"' > mymodule.py
# Run the module
shell2$ python
>>> import mymodule
>>> mymodule.x()
version 1
# Change mymodule to print "version 2" (without exiting the python REPL)
shell2$ echo 'def x(): print "version 2"' > mymodule.py
# Back in that same python session
>>> reload(mymodule)
<module 'mymodule' from 'mymodule.pyc'>
>>> mymodule.x()
version 2
출처 : https://stackoverflow.com/questions/684171/how-to-re-import-an-updated-package-while-in-python-interpreter
728x90
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
파이썬에서 "private" 변수 (0) | 2021.09.16 |
---|---|
파이썬에서 "named tuples" 이란? (0) | 2021.09.15 |
파이썬 'for' 루프를 사용하여 딕셔너리 반복 (0) | 2021.09.14 |
파이썬에서 스레딩을 사용하는 방법 (0) | 2021.09.14 |
Python 배열 마지막 항목 부터 탐색 하는 방법 (0) | 2021.09.13 |