> 백엔드 개발 > 파이썬 튜토리얼 > 서버를 다시 시작하지 않고 Python 모듈을 다시 로드하는 방법은 무엇입니까?

서버를 다시 시작하지 않고 Python 모듈을 다시 로드하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-27 13:50:14
원래의
388명이 탐색했습니다.

How to Reload a Python Module Without Restarting the Server?

서버 업그레이드를 위한 Python 모듈 다시 로드

장기 실행 Python 서버를 유지하려면 전체 서버를 다시 시작하지 않고도 업그레이드가 필요할 수 있습니다. 이에 대한 한 가지 접근 방식은 특정 모듈을 언로드하고 다시 로드하는 것입니다.

질문: Python 모듈을 언로드하고 다시 로드하는 방법은 무엇입니까?

이전에 가져온 모듈을 언로드하고 해당 모듈을 로드하려면 서버를 다시 시작하지 않고 버전을 업데이트했습니다.

답변: importlib.reload()를 사용하세요. 함수

Python 3.4의 경우 importlib.reload() 함수를 사용하세요.

from importlib import reload
import foo

while True:
    # Perform actions
    if is_changed(foo):
        foo = reload(foo)
로그인 후 복사

Python 2의 경우 imp 모듈의 reload 함수를 사용하세요.

참조 리바인딩

모듈을 다시 로드한 후, 해당 개체는 다시 생성되지만 외부 참조는 업데이트해야 합니다. 제공된 예에서 Foo 객체가 foo 모듈에 있는 경우 이를 다시 생성해야 합니다.

이 기술은 일반적으로 Django 개발 서버의 핫 리로드에 사용되며, 이를 통해 다시 시작하지 않고도 코드 변경 사항을 반영할 수 있습니다. 서버.

Python 모듈 다시 로드 세부 정보

Importlib.reload()는 모듈의 코드를 다시 컴파일하고, 모듈 수준 코드를 다시 실행하고, 모듈의 사전을 새 개체로 업데이트합니다. 참조 횟수가 0으로 떨어지면 오래된 객체는 가비지 수집됩니다.

원하는 경우 모듈 외부의 오래된 객체에 대한 바인딩되지 않은 참조는 수동으로 업데이트해야 합니다.

위 내용은 서버를 다시 시작하지 않고 Python 모듈을 다시 로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿