每次我尝试使用 Python 交互模式时,无论我输入什么内容,都会使用 Arch Linux,Segmentation fault (core dumped)
然后 Python 解释器就会退出。
我在运行 Python 脚本或执行以下操作时没有任何问题:
$ echo "print(1+1)" | python
但是,当我进入交互模式时,无论是使用python
还是python2
,只要我键入任何命令并按 Enter,解释器就会停止,然后如果我再次按 Enter(或任何其他键),我会收到消息Segmentation fault (core dumped)
并且解释器退出。
我测试安装蟒蛇我对 python 解释器的这个接口没有任何问题或错误。
我尝试过,当我在提示符下gdb
输入时,我必须按回车键两次(当按下回车键时,它会停止)然后得到:run
gdb
Starting program: /usr/bin/python
Segmentation fault (core dumped)
并gdb
退出。
也许这些信息有用:
$ which python
/usr/bin/python
$ which python2
/usr/bin/python2
$ python --version
Python 3.6.1
$ python2 --version
Python 2.7.13
$ uname -a
Linux archimiro 4.11.6-3-ARCH #1 SMP PREEMPT Thu Jun 22 12:21:46 CEST 2017 x86_64 GNU/Linux
答案1
下列的嗯建议我运行 Pythonstrace
并查看交互式和非交互式 Python 之间的差异。
交互式 Python 读取 my 的~/.inputrc
使用方式阅读线,这就是导致Segmentation fault (core dumped)
.
我有一个~/.inputrc
来自另一台机器 (Ubuntu) 的文件,在其中我盲目地复制了 (Ubuntu) 的内容/usr/share/doc/bash/inputrc.arrows
。
其内容/usr/share/doc/bash/inputrc.arrows
为:
# This file controls the behaviour of line input editing for
# programs that use the Gnu Readline library.
#
# Arrow keys in keypad mode
#
"\C-[OD" backward-char
"\C-[OC" forward-char
"\C-[OA" previous-history
"\C-[OB" next-history
#
# Arrow keys in ANSI mode
#
"\C-[[D" backward-char
"\C-[[C" forward-char
"\C-[[A" previous-history
"\C-[[B" next-history
#
# Arrow keys in 8 bit keypad mode
#
"\C-M-OD" backward-char
"\C-M-OC" forward-char
"\C-M-OA" previous-history
"\C-M-OB" next-history
#
# Arrow keys in 8 bit ANSI mode
#
"\C-M-[D" backward-char
"\C-M-[C" forward-char
"\C-M-[A" previous-history
"\C-M-[B" next-history
和8 bit keypad mode
是8 bit ANSI mode
问题的具体原因,因此删除它们后一切正常。
谢谢特里格感谢您向我指出gdb
并足够耐心,因为我以前从未使用过该工具。与嗯谁建议使用strace
这对我来说也是新的。我不知道从哪里开始调试,因为我只是一个喜欢学习新事物的临时用户。很棒的社区!