【问题标题】:Ctrl+C in terminal producing python traceback, on trying an invalid command在尝试无效命令时,终端中的 Ctrl+C 产生 python 回溯
【发布时间】:2014-12-07 10:10:35
【问题描述】:

我在我的 linux 终端中输入了一个无效命令 d。打印d: command not found 通常需要大约 1 秒钟。今天,我在Ctrl+C 打印'command not found'之前点击了它,并得到以下输出:

user@mypc:~/$ d
^C
user@mypc:~/$ Failed to import the site module
Traceback (most recent call last):
  File "/usr/lib/python3.4/site.py", line 586, in <module>
    main()
  File "/usr/lib/python3.4/site.py", line 573, in main
    known_paths = addsitepackages(known_paths)
  File "/usr/lib/python3.4/site.py", line 358, in addsitepackages
    addsitedir(sitedir, known_paths)
  File "/usr/lib/python3.4/site.py", line 212, in addsitedir
    addpackage(sitedir, name, known_paths)
  File "/usr/lib/python3.4/site.py", line 164, in addpackage
    f = open(fullname, "r")
KeyboardInterrupt

user@mypc:~/$

为什么会这样?

编辑:这是 which 命令的输出:

$ which xyx
$
$ which d
$

【问题讨论】:

  • which d 打印出什么?
  • 它不打印任何东西。我不认为这种行为是 d 的特殊行为
  • @Pratyaksh;哪个应该打印文件的路径,或者声明“no xxx in ...”。向我们展示他没有返回任何内容的屏幕输出。
  • 感谢截图 - 你能做到吗:which -v
  • 显示Illegal option -v

标签: python linux shell unix terminal


【解决方案1】:

Ubuntu 在其 Bash 设置中包含一个 "command not found" handler,它是用 Python 编写的。我猜你打断了它。

一秒钟听起来很长。您的系统是否太旧或负载过重?

【讨论】:

  • 是的,它既旧又有点重。
【解决方案2】:

可能是当您按下键盘中断键时,python 没有到达程序中将“d”替换为一组特定代码的程序部分,这通常会产生此错误。因此,您没有错误“d: command not found”,并且您的代码的另一部分在到达提供d: command not found 的代码之前也需要“d”,因为“d”不是数字,所以现在给出错误。

但是,根据信息...当 python 调用其模块之一时,您的程序似乎被中断,因此您收到一条错误消息,因为此过程未完成。

【讨论】:

  • 我编辑了我的答案,并稍微解释了当你突然按下 Ctrl+C 时我的想法。希望这会有所帮助
猜你喜欢
  • 1970-01-01
  • 2021-10-11
  • 2015-04-18
  • 2017-01-15
  • 2012-09-10
  • 2020-12-21
  • 2021-09-04
  • 2013-12-30
  • 1970-01-01
相关资源
最近更新 更多