Подтвердить что ты не робот

Reimport модуль в python в интерактивном режиме

Я знаю, что это можно сделать, но я никогда не помню, как.

Как вы можете reimport модуль в python? Сценарий выглядит следующим образом: я импортирую модуль в интерактивном режиме и возиться с ним, но затем я сталкиваюсь с ошибкой. Я исправляю ошибку в .py файле, а затем хочу reimport фиксированный модуль, не выходя из python. Как я могу это сделать?

4b9b3361

Ответ 1

Это должно работать:

reload(my.module)

Из Документы Python

Загрузите ранее импортированный модуль. Аргумент должен быть объектом модуля, поэтому он должен быть успешно импортирован ранее. Это полезно, если вы отредактировали исходный файл модуля с помощью внешнего редактора и хотите попробовать новую версию, не выходя из интерпретатора Python.

Ответ 2

В python 3, reload больше не является встроенной функцией.

Если вы используете python 3.4+, вы должны использовать reload из importlib:

import importlib
importlib.reload(some_module)

Если вы используете python 3.2 или 3.3, вы должны:

import imp  
imp.reload(module)  

вместо этого. См. http://docs.python.org/3.0/library/imp.html#imp.reload

Если вы используете ipython, обязательно рассмотрите использование autoreload расширение:

%load_ext autoreload
%autoreload 2

Ответ 3

Собственно, в Python 3 модуль imp отмечен как DEPRECATED. Ну, по крайней мере, это верно для 3.4.

Вместо этого следует использовать функцию reload из модуля importlib:

https://docs.python.org/3/library/importlib.html#importlib.reload

Но имейте в виду, что эта библиотека имела некоторые изменения API с двумя последними версиями.