Как обновить импорт выполненного скрипта в оболочке Python после его редактирования? - PullRequest
6 голосов
/ 02 ноября 2010

Вопрос новичкам.Я запустил свою оболочку ipython и запускаю сценарии с помощью команды run, и все отлично работает.Однако если запустить файл сценария, а затем отредактировать импортированный файл сценария, а затем попытаться запустить его снова, будет запущен старый импортированный файл.Так что я предполагаю, что python экономит некоторый кеш для скоростиЯ попытался очистить команду и тому подобное, но безрезультатно.

В основном моя проблема заключается в следующем.Два файла: function.py и program.py.Программный файл импортирует функцию.Но если запустить программу и затем отредактировать функцию, а затем снова запустить программу, будет запущена старая функция / неотредактированная версия.

Ответы [ 3 ]

8 голосов
/ 02 ноября 2010

Внутри iPython или стандартного интерпретатора Python вы можете использовать функцию reload() для перезагрузки импортированного модуля.

Пример:

In [1]: import foo
  # make some changes to the foo.py
In [2]: reload(foo)
1 голос
/ 02 ноября 2010

Используйте Функция Python reload для перекомпиляции кода модуля и повторного выполнения всего кода уровня модуля - иначе интерпретатор Python будет использовать устаревший скомпилированный байт-код (.pyc).Например:

In [1]: import script

In [2]: run script
...

In [3]: reload(script)
Out[3]: <module 'script' from 'script.pyc'>
...
In [4]: run script
0 голосов
/ 02 ноября 2010

Здесь указано , что файл каждый раз перечитывается с диска, вы уверены, что ошибка не на вашей стороне?

...