ipython: IPython 5 breaks Emacs behaviour on Windows
Hi all, I have successfully used IPython from within an Emacs buffer in the past, usually by using the jupyter console
command. My basic config uses the following:
(setq-default python-shell-interpreter "C:/Python34/Scripts/jupyter.exe"
python-shell-interpreter-args "console")
The problem seems to be that the latest version of IPython breaks this integration, as the following error message / traceback appears:
Traceback (most recent call last):
File "c:\python34\lib\runpy.py", line 170, in _run_module_as_main
"__main__", mod_spec)
File "c:\python34\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "c:\Python34\Scripts\ipython.exe\__main__.py", line 9, in <module>
File "c:\python34\lib\site-packages\IPython\__init__.py", line 119, in start_ipython
return launch_new_instance(argv=argv, **kwargs)
File "c:\python34\lib\site-packages\traitlets\config\application.py", line 595, in launch_instance
app.initialize(argv)
File "<decorator-gen-110>", line 2, in initialize
File "c:\python34\lib\site-packages\traitlets\config\application.py", line 74, in catch_config_error
return method(app, *args, **kwargs)
File "c:\python34\lib\site-packages\IPython\terminal\ipapp.py", line 300, in initialize
super(TerminalIPythonApp, self).initialize(argv)
File "<decorator-gen-7>", line 2, in initialize
File "c:\python34\lib\site-packages\traitlets\config\application.py", line 74, in catch_config_error
return method(app, *args, **kwargs)
File "c:\python34\lib\site-packages\IPython\core\application.py", line 446, in initialize
self.parse_command_line(argv)
File "c:\python34\lib\site-packages\IPython\terminal\ipapp.py", line 295, in parse_command_line
return super(TerminalIPythonApp, self).parse_command_line(argv)
File "<decorator-gen-4>", line 2, in parse_command_line
File "c:\python34\lib\site-packages\traitlets\config\application.py", line 74, in catch_config_error
return method(app, *args, **kwargs)
File "c:\python34\lib\site-packages\traitlets\config\application.py", line 488, in parse_command_line
return self.initialize_subcommand(subc, subargv)
File "c:\python34\lib\site-packages\IPython\core\application.py", line 236, in initialize_subcommand
return super(BaseIPythonApplication, self).initialize_subcommand(subc, argv)
File "<decorator-gen-3>", line 2, in initialize_subcommand
File "c:\python34\lib\site-packages\traitlets\config\application.py", line 74, in catch_config_error
return method(app, *args, **kwargs)
File "c:\python34\lib\site-packages\traitlets\config\application.py", line 426, in initialize_subcommand
self.subapp.initialize(argv)
File "<decorator-gen-114>", line 2, in initialize
File "c:\python34\lib\site-packages\traitlets\config\application.py", line 74, in catch_config_error
return method(app, *args, **kwargs)
File "c:\python34\lib\site-packages\jupyter_console\app.py", line 137, in initialize
self.init_shell()
File "c:\python34\lib\site-packages\jupyter_console\app.py", line 110, in init_shell
client=self.kernel_client,
File "c:\python34\lib\site-packages\traitlets\config\configurable.py", line 412, in instance
inst = cls(*args, **kwargs)
File "c:\python34\lib\site-packages\jupyter_console\ptshell.py", line 252, in __init__
self.init_prompt_toolkit_cli()
File "c:\python34\lib\site-packages\jupyter_console\ptshell.py", line 404, in init_prompt_toolkit_cli
self.pt_cli = CommandLineInterface(app, eventloop=self._eventloop)
File "c:\python34\lib\site-packages\prompt_toolkit\interface.py", line 80, in __init__
self.output = output or create_output()
File "c:\python34\lib\site-packages\prompt_toolkit\shortcuts.py", line 114, in create_output
return Win32Output(stdout)
File "c:\python34\lib\site-packages\prompt_toolkit\terminal\win32_output.py", line 80, in __init__
info = self.get_win32_screen_buffer_info()
File "c:\python34\lib\site-packages\prompt_toolkit\terminal\win32_output.py", line 150, in get_win32_screen_buffer_info
raise NoConsoleScreenBufferError
prompt_toolkit.terminal.win32_output.NoConsoleScreenBufferError: No Windows console found. Are you running cmd.exe?
It seems even though it should load, prompt_toolkit
does not like that Emacs is 1) on Windows and 2) is not in a known shell. I imagine this isn’t anything to do with Emacs, as this shouldn’t be any different than starting any other type of console from within the editor. Is this fixable? It seems to just be that prompt_toolkit
doesn’t know what it is executing inside.
Anyways, thanks for the IPython 5 release, I really like the new REPL and completion, but being able to use it with Emacs as I have been is important to me as well. Hopefully the fix is as simple as adding some sort of Emacs clause to get_win32_screen_buffer_info
.
About this issue
- Original URL
- State: open
- Created 8 years ago
- Comments: 15 (8 by maintainers)
for me, %matplotlib does not solve the plotting freezing on windows + emacs. to get everything work, i have to use emacs + ipython<=4.1.0 + jupyter-console<=4.1.0