2013-10-26 2 views
0

Я следующий сценарий в Python3реимпорт обновленного модуля питон

from phase_2d import phase_2d #where phase_2d является питон файл phase_2d.py

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

imp.reload(phase_2d) 

возвращает ошибку 'Тип: Ошибка: Reload() аргумент должен быть модуль'

ответ

0

Поскольку вы импортировали класс phase_2d из модуля phase_2d, когда вы звоните imp.reload (phase_2d), в phase_2d Передача команды перезагрузки - это класс, а не модуль. Чтобы использовать команду перезагрузки, вы должны импортировать фактический модуль или иным образом получить ссылку на модуль. Например, вы могли бы сделать что-то вроде этого:

import phase_2d 
from phase_2d import phase_2d as p2d 
... 
imp.reload(phase_2d) 

Или, если вы действительно хотите только импортировать один класс из модуля, вы можете использовать инспектировать модуль, чтобы получить родительский модуль из класса (http://docs.python.org/2/library/inspect.html#inspect.getmodule)

import inspect 
from phase_2d import phase_2d 
.... 
imp.reload(inspect.getmodule(phase_2d)) 
Смежные вопросы