Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python解释器捕获bash中无法识别的命令_Python_Bash - Fatal编程技术网

python解释器捕获bash中无法识别的命令

python解释器捕获bash中无法识别的命令,python,bash,Python,Bash,每次我尝试调用控制台(/bin/bash)中不存在的命令($a),解释器都会等待很长时间。当我中断它(^C)时,我从Python解释器得到一条错误消息。相反,我希望它告诉我该命令未被识别。为什么会这样 $ a ^C Traceback (most recent call last): File "/usr/lib/python2.7/encodings/__init__.py", line 32, in <module> root@dell:/home/antonio/works

每次我尝试调用控制台(/bin/bash)中不存在的命令(
$a
),解释器都会等待很长时间。当我中断它(^C)时,我从Python解释器得到一条错误消息。相反,我希望它告诉我该命令未被识别。为什么会这样

$ a
^C
Traceback (most recent call last):
  File "/usr/lib/python2.7/encodings/__init__.py", line 32, in <module>
root@dell:/home/antonio/workspace/biz_index#     from encodings import aliases
  File "/usr/lib/python2.7/encodings/aliases.py", line 17, in <module>
    """
KeyboardInterrupt
^C
$a
^C
回溯(最近一次呼叫最后一次):
文件“/usr/lib/python2.7/encodings/_init__.py”,第32行,在
root@dell:/home/antonio/workspace/biz#u index#从编码导入别名
文件“/usr/lib/python2.7/encodings/aliases.py”,第17行,在
"""
键盘中断
^C

你是在ubuntu机器上吗?ubuntu有一个用python实现的程序,你可能已经中断了

在您的路径中,可能有一个与未找到
命令
包调用的脚本同名的脚本。如果有,此脚本可能是挂起的脚本。要以可读的方式打印您的路径,请运行
echo$path | tr-s':''\n'
如果设置
path=”“
修复了它,然后某处有东西正在跟踪一个python包,该包被
命令not found
包调用。我最近自己编写了一个名为
struct.py
的脚本来实现这一点。您需要遍历路径中的每个目录,即

/home/antonio/.local/bin
/home/antonio/.local/bin
/usr/local/sbin
/usr/local/bin‌​
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/usr/local/games
然后在那里查找
.py
文件。其中一个与一个内置Python包共享一个名称。或者,您可以从
路径
中删除目录,并将其重新添加,直到找到哪个目录会破坏它。一旦找到它,就需要删除或重命名它

这里有一个shell one liner为您提供:

for dir in $(echo $PATH | tr ":" "\n"); do ls -1 $dir | grep "[.]py"; done
您可以在自己的shell中进行测试,方法是尝试以下操作(重现几天前的错误):

现在在我的shell中,停留在当前目录中,我看到:

➜  client git:(master) ✗ a
HELLO WORLD
zsh: command not found: a

在您的案例中,大概正在执行阴影处理的Python脚本正在执行比打印“HELLO WORLD”更为资源密集的操作,因此被挂起。

您的
路径中有什么?
?哪个
的结果是什么?这只发生在某个目录中,还是在任何地方?很可能您不小心用自己的一些代码隐藏了一个内置Python包。这似乎与StackOverflow无关。我认为Unix/Linux可能是最好的迁移站点,但超级用户可能会更好?@AntonioRomero检查
路径中的每个目录,看看其中是否有.py文件。另外,请尝试
export PATH=”“
,再次尝试一个无效的命令,看看是否可以修复它。是的,它是Ubuntu。“那我该怎么解决呢?”安东尼奥罗梅罗我同意我的回答没有提到绞刑。我们正在调查。。。
➜  client git:(master) ✗ a
HELLO WORLD
zsh: command not found: a