Disable readline

  • Thread starter Steven D'Aprano
  • Start date
S

Steven D'Aprano

Is there a way to disable readline support in the interactive interpreter
at runtime? Either from within an existing session, or when the session
starts up will do.

I am trying to test the behaviour of some interactive scripts which rely
on readline. I have work-arounds for missing readline (such as on Windows
systems) but no way to test them properly on Linux.

If all else fails, are there any traps or pitfalls in installing a second
Python installation with readline support disabled?

Any other suggestions?
 
R

Roy Smith

Steven D'Aprano said:
Is there a way to disable readline support in the interactive interpreter
at runtime? Either from within an existing session, or when the session
starts up will do.

I'm assuming Python uses the standard GNU readline(). If that's
correct, then you can configure its behavior by editing your ~/.inputrc
file. Try "man readline". I don't see any global "disable readline"
flag, but you may be able to get that effect by deleting all the key
mappings, or some such silliness.

Another possibility is setting your TERM environment variable to
something that readline can't support:

~$ TERM=asr33
~$ python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Cannot read termcap database;
using dumb terminal settings.
Cannot read termcap database;
using dumb terminal settings.
Cannot read termcap database;
using dumb terminal settings.
If all else fails, are there any traps or pitfalls in installing a second
Python installation with readline support disabled?

None at all, as long as you keep them from stomping on each other. The
easiest method is probably to use virtualenv.

BTW, readline is the coolest, awesomist, most frabjulously gnarly thing
to be invented since the pointed stick. The idea that somebody would
want to turn it off (even for testing) disturbs me deeply.
 
S

Steven D'Aprano

Another possibility is setting your TERM environment variable to
something that readline can't support:

~$ TERM=asr33
~$ python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) [GCC 4.2.1 (Apple Inc.
build 5646)] on darwin Type "help", "copyright", "credits" or "license"
for more information. Cannot read termcap database;
using dumb terminal settings.
Cannot read termcap database;
using dumb terminal settings.
Cannot read termcap database;
using dumb terminal settings.


Damn, my python is smarter than your python.

steve@runes:~$ TERM=asr33
steve@runes:~$ python
Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
And readline continues to work :/


I think I'll install from source a build with readline disabled.

BTW, readline is the coolest, awesomist, most frabjulously gnarly thing
to be invented since the pointed stick. The idea that somebody would
want to turn it off (even for testing) disturbs me deeply.

I know! I don't use more than about 1% of what readline offers, but I
can't imagine not using it.
 
N

Nick Dokos

Steven D'Aprano said:
Another possibility is setting your TERM environment variable to
something that readline can't support:

~$ TERM=asr33
~$ python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) [GCC 4.2.1 (Apple Inc.
build 5646)] on darwin Type "help", "copyright", "credits" or "license"
for more information. Cannot read termcap database;
using dumb terminal settings.
Cannot read termcap database;
using dumb terminal settings.
Cannot read termcap database;
using dumb terminal settings.


Damn, my python is smarter than your python.

steve@runes:~$ TERM=asr33
steve@runes:~$ python
Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
And readline continues to work :/

Two things:

o Is TERM exported? Maybe Roy's is and yours isn't.
o Is asr33 in your termcap database?

Try

export TERM=dumb

perhaps?

Nick
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,982
Messages
2,570,189
Members
46,735
Latest member
HikmatRamazanov

Latest Threads

Top