Arch Linux 上的 Python 交互模式“分段错误(核心转储)”

Arch Linux 上的 Python 交互模式“分段错误(核心转储)”

每次我尝试使用 Python 交互模式时,无论我输入什么内容,都会使用 Arch Linux,Segmentation fault (core dumped)然后 Python 解释器就会退出。

我在运行 Python 脚本或执行以下操作时没有任何问题:

$ echo "print(1+1)" | python

但是,当我进入交互模式时,无论是使用python还是python2,只要我键入任何命令并按 Enter,解释器就会停止,然后如果我再次按 Enter(或任何其他键),我会收到消息Segmentation fault (core dumped)并且解释器退出。

我测试安装蟒蛇我对 python 解释器的这个接口没有任何问题或错误。

我尝试过,当我在提示符下gdb输入时,我必须按回车键两次(当按下回车键时,它会停止)然后得到:rungdb

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 mode8 bit ANSI mode问题的具体原因,因此删除它们后一切正常。

谢谢特里格感谢您向我指出gdb并足够耐心,因为我以前从未使用过该工具。与谁建议使用strace这对我来说也是新的。我不知道从哪里开始调试,因为我只是一个喜欢学习新事物的临时用户。很棒的社区!

相关内容