Если вы поместили большую часть кода в модуль, вы можете получить основной файл (который является тем, который выполняется), проверить местоположение обновления и автоматически загрузить самую последнюю версию и установить ее, прежде чем модуль будет импортирован.
Таким образом, вам не нужно было перезапускать приложение для запуска последней версии, просто переименуйте модуль.
# Check version of module
import module
# Check update address
if update_version > module.version:
download(update_module)
import module
reload(module)
module.main()
Вы можете использовать функцию reload(), чтобы заставить модуль перезагрузить свои данные. Обратите внимание, что есть некоторые предостережения: объекты, созданные с использованием классов в этом модуле, не будут обновлены магией до новой версии, а «из материала импорта модуля» до того, как реимпорт может привести к тому, что «материал» относится к старому объекту «module.stuff» ».
[Очевидно, что я не читал предыдущий пост достаточно ясно - это именно то, что я предлагаю]
cool ... Я думал, что это не из-за ошибки, которую я получал, но теперь я вижу, что это была глупая ошибка, которую я делал. – carrier 2008-11-14 21:22:15
В частности: если вы удалите файл .py, но оставьте файл .pyc, этот файл по-прежнему будет импортирован. Укусы меня не реже одного раза в месяц. – 2011-01-15 08:00:12