help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Multiple prompts when starting inferior Python


From: Andreas Röhler
Subject: Re: Multiple prompts when starting inferior Python
Date: Tue, 06 May 2014 18:29:03 +0200
User-agent: Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Icedove/24.4.0

On 06.05.2014 18:17, Joost Kremers wrote:
Hi,

Whenever I start an interactive Python session in Emacs, I get four
empty prompts instead of one. That is, when I do `M-x run-python' (or
start from a Python file with `C-c C-z'), the *Python* buffer looks like
this:

,----
| Python 2.7.3 (default, Feb 27 2014, 19:58:35)
| Type "copyright", "credits" or "license" for more information.
|
| IPython 0.12.1 -- An enhanced Interactive Python.
| ?         -> Introduction and overview of IPython's features.
| %quickref -> Quick reference.
| help      -> Python's own help system.
| object?   -> Details about 'object', use 'object??' for extra details.
|
| In [1]:
| In [2]:
| In [3]:
| In [4]:
|
`----

I use elpy and IPython, but that doesn't make a difference. This is what
I get when running an interactive Python shell with `emacs -Q':

,----
| Python 2.7.3 (default, Feb 27 2014, 19:58:35)
| [GCC 4.6.3] on linux2
| Type "help", "copyright", "credits" or "license" for more information.
| >>> >>> >>> >>>
`----

Note the four `>>>'.

This is something that's been happening a while, and it's never really
bothered me. However, the other day someone on Reddit asked the same
question,[1] which prompted me to do some digging. I ran `run-python'
though the debugger and it seems that those prompts are caused by the
function `python-shell-send-setup-code', which sends the contents of the
variables listed in the variable `python-shell-setup-codes' to the
inferior python process when it's started. The default value of this
option is:

,----
| (python-shell-completion-setup-code python-ffap-setup-code 
python-eldoc-setup-code)
`----

Each of these variables contains some code which, when sent to the
inferior python process, results in a new prompt being displayed, even
though the actual command is not shown.

Is this something that should be considered a bug? Can it be avoided
somehow or should I simply live with it? (Which isn't very difficult, it
doesn't seem to affect anything.)

TIA


[1] 
http://www.reddit.com/r/emacs/comments/24fy1q/help_get_rid_of_multiple_inputs_when_running_a/




That's because some some setup-code is sent to the python-process connected to 
the buffer.
Basically a filter could wipe them out. OTOH it's does no harm.

With python-mode.el and M-x python RET you should not have this.

BTW with ipython, you will see the prompt-counter raised and starting with [5] 
or so - for the very same reason.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]