2013-04-16 6 views
3

Я создал следующий ipython_config.py сценарий для IPython:ошибка: видеосистема не инициализирован (kivy, IPython)

c = get_config() 
c.TerminalInteractiveShell.editor = 'C:\PROGRA~2\NOTEPA~1\NOTEPA~1.exe' 

Теперь, когда я% отредактировать какой-то файл, я получаю довольно нежелательное поведение, то есть, он начинает редактирование в Notepad ++ И он немедленно выполняет код. Скажи:

%edit 'C:/Python27/share/kivy-examples/widgets/textinput.py' 

Это запускает редактирования textinput.py в Notepad ++ (до сих пор так хорошо) и запускает это приложение сразу (не хорошо).

Что еще хуже то, что, когда я начинаю редактировать второй раз, это запустить N ++, но приложение kivy не может работать снова, с этим исключением:

C:\Python27\lib\site-packages\kivy\core\window\window_pygame.pyc in flip(self) 
    217 
    218  def flip(self): 
--> 219   pygame.display.flip() 
    220   super(WindowPygame, self).flip() 
    221 

error: video system not initialized 

Как это исправить? То есть, я хотел бы, чтобы IPython:

  1. ждет N ++, чтобы закончить редактирование (скажем, как WinSCP способен распознавать закончат редактирования с помощью внешнего редактора и только затем загружает измененный файл).

  2. не завинчивание kivy запуск после одного пробега.

ответ

3

Вам необходимо использовать InteractiveLauncher. Tshirtman также сделал небольшой video, демонстрирующий, как он может быть использован. Все недостатки, которые следует избегать и дальнейшие подробности, упоминаются на странице documentation page этой функции.