如何重复上一个命令?通常的键:Up,Ctrl + Up,Alt-p不起作用.他们产生荒谬的人物.
(ve)[kakarukeys@localhost ve]$ python
Python 2.6.6 (r266:84292, Nov 15 2010, 21:48:32)
[GCC 4.4.4 20100630 (Red Hat 4.4.4-10)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "hello world"
hello world
>>> ^[[A
File "<stdin>", line 1
^
SyntaxError: invalid syntax
>>> ^[[1;5A
File "<stdin>", line 1
[1;5A
^
SyntaxError: invalid syntax
>>> ^[p
File "<stdin>", line 1
p
^
SyntaxError: invalid syntax
>>>
Run Code Online (Sandbox Code Playgroud) 当我在我的osx上安装ipython并运行它时,我收到以下警告:
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/
site-packages/IPython/utils/rlineimpl.py:96:
RuntimeWarning: Leopard libedit detected - readline will not be wel
behaved including some crashes on tab completion, and incorrect
history navigation. It is highly recommended that you install
readline, which is easy_installable with: 'easy_install readline'
Run Code Online (Sandbox Code Playgroud)
我已经安装了readline,并且不使用最初安装的系统python /Library/Frameworks/Python.framework/Versions/2.7/bin/python$./usr/bin/python版本2.7 的要点如下所示
uname -a
Darwin macbook.local 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun 7
16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386
$sudo pip install readline ipython
$ipython --version
0.11
$/usr/bin/python --version #
Python 2.7.1
$which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
Run Code Online (Sandbox Code Playgroud)
我不知道为什么历史不能在Python 2.7.2解释器中工作.我为每个箭头键获得了奇怪的字符组.在终端中不会发生这种情况.顺便说一下,我在Ubuntu 10.04上.这是这个地狱的屏幕截图:

如何通过按向上和向下箭头键恢复获取命令历史记录的功能?
我使用zsh,iTerm2(3.0.9)和pyenv(1.0.2),pyenv global设置为3.5.2.
在Python shell中,上下箭头键用于工作,以访问历史记录中的先前命令.但现在升级到OSX 10.12之后,它显示了控制字符.例如,向上箭头显示:
^[[A
Run Code Online (Sandbox Code Playgroud)
我按照在python shell中按箭头键时看到转义字符的建议尝试安装readline,但这没有帮助.我没有PYTHONSTARTUP变量,但之前没有使用过,也不确定它与pyenv的交互方式.
我刚从源代码安装了Python 3.6.1,然后运行sudo pip3 install readline安装readline模块.但是当我启动Python shell时,无论我输入什么,它都会崩溃:
Python 3.6.1 (default, Mar 25 2017, 13:40:56)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello")
*** Error in `python3': munmap_chunk(): invalid pointer: 0x00007fa3c64960a0 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7fa3c565e7e5]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x1a8)[0x7fa3c566aae8]
python3(PyOS_Readline+0xec)[0x5c3bcc]
python3[0x447cd0]
python3[0x449788]
python3(PyTokenizer_Get+0x9)[0x44a659]
python3[0x44617e]
python3(PyParser_ASTFromFileObject+0xa3)[0x428803]
python3(PyRun_InteractiveOneObject+0x122)[0x428a42]
python3(PyRun_InteractiveLoopFlags+0x6e)[0x428dce]
python3(PyRun_AnyFileExFlags+0x3c)[0x428efc]
python3(Py_Main+0xe4f)[0x43ba3f]
python3(main+0x162)[0x41dc52]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7fa3c5607830]
python3(_start+0x29)[0x41dd29]
======= Memory map: ========
00400000-00663000 r-xp 00000000 08:05 16779642 /usr/local/bin/python3.6
00862000-00863000 r--p 00262000 08:05 16779642 /usr/local/bin/python3.6
00863000-008c7000 rw-p 00263000 08:05 …Run Code Online (Sandbox Code Playgroud) 我想在python解释器中玩,但有一堆导入和对象设置完成.现在我正在命令行启动解释器并每次都进行设置工作.有没有办法在完成所有初始化工作的情况下启动命令行解释器?
例如:
# Done automatically.
import foo
import baz
l = [1,2,3,4]
# Launch the interpreter.
launch_interpreter()
>> print l
>> [1,2,3,4]
Run Code Online (Sandbox Code Playgroud) 我的python交互式会话中没有任何readline功能。箭头键只是在屏幕上移动光标或打印^[[A等。一些网络搜索使我尝试手动导入readline程序包,但这导致以下错误:
>>>导入readline
Traceback(最近一次调用):
文件“ <stdin>”,在<module>
ImportError中的第1行:/opt/readline-6.3/lib/libreadline.so.6:未定义的符号:PC
我认为这是特定于版本的问题,因为在默认情况下,我正在使用的机器上的2.6环境中不会发生这种情况(我在virtualenv中的2.7.10中工作-这是最新的python 2.7据我所知,我可以在计算机上加载的版本)。顺便说一下,它正在运行linux-CentOS 6.8。
似乎其他人以某种形式存在此问题,但我无法确定他们的解决方案是否过时(我是否需要自该版本起就不再使用的readline包?),即使不是,我也不是。确定如何安装该软件包的固定版本(我还不是非常精通python,并且除了basic pip install或之外,我没有什么其他的conda install)。
如何解决此错误?如果要求不高,那么不要求我从pip切换到conda的解决方案将是理想的,因为我要挤进一台我没有完全控制权的机器,并且愿意做很多事情使用我已经拥有或可以轻松安装的工具可以实现。
我在 Docker 中有一个 Django 服务器,并且希望能够远程调试我的脚本。箭头键不起作用。我越来越
(Pdb) ^[[A
Run Code Online (Sandbox Code Playgroud)
而不是有用的东西。我只是在 Ubuntu 上使用普通终端。没有 IDE 或任何奇特的东西。
正如这里所述,我重写了我的 docker-compose 并且它可以很好地使用此行:
__import__("remote_pdb").set_trace(host='0.0.0.0', port=4444)
Run Code Online (Sandbox Code Playgroud)
通过 telnet,我可以使用pdb 的大多数telnet 0.0.0.0 4444功能:
不起作用的是箭头键。有人也遇到了这个问题,我安装了readline,因为这个人也遇到了同样的问题:Python 交互模式历史记录和箭头键
dnf install ncurses-devel
pip3 install readline
Run Code Online (Sandbox Code Playgroud)
没有变化。(安装有效。我可以导入readline)。我假设问题可能来自 telnet。所以我正在考虑切换到ssh -t。
但现在我应该登录:
ssh -t 0.0.0.0 -P 4444
qohelet@0.0.0.0's password:
Run Code Online (Sandbox Code Playgroud)
没有密码。这只是一个 Docker。我也不知道用户名。
我一直在寻找,2017 年刚刚打来电话。我应该使用gnureadline。没有不同:
(Pdb) import gnureadline
(Pdb) ^[[A
Run Code Online (Sandbox Code Playgroud)
我现在被困住了。
我使用的是ubuntu,linux内核2.6.38.我通常使用python2,今天,我决定尝试使用Python3.我make install按照README 下载python3和它.但是,python 3.2解释器无法识别UP/SOWN/LEFT/RIGHT密钥,这些密钥在我的python 2.7解释器中可用.我做错了什么?

另一个问题是,如果我同时拥有python2.7和python3.2,我可以选择iPython使用的python版本吗?
最好的祝福.
当我apk add python3在运行alpine发行版的Docker容器中时,像这样的组合键Ctrl <left arrow>,而不是按整个单词移动光标,而是打印以下内容(在这里,我输入了“垃圾邮件鸡蛋”,然后按住控制并按下向左箭头键):
Python 3.5.1 (default, Dec 9 2015, 14:41:32)
[GCC 5.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> spam ham;5D
Run Code Online (Sandbox Code Playgroud)
只是apk add荷兰国际集团readline或pip3 install荷兰国际集团它本身并不解决问题。
在这种环境下,如何在Python中使用readline?
python ×9
readline ×3
docker ×2
interpreter ×2
alpine-linux ×1
ipython ×1
iterm2 ×1
macos ×1
pdb ×1
pyenv ×1
python-2.7 ×1
python-3.6 ×1
python-3.7 ×1
python-3.x ×1
python-idle ×1
shell ×1
virtualenv ×1
zsh ×1