每次我尝试在控制台(/ 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
如果设置PATH =“”修复它,那么某些东西就是遮蔽一个被命令未找到的包调用的python包.我最近通过编写一个名为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包共享一个名称.或者,您可以从PATH中删除目录,然后将其重新插入,直到找到哪个中断它.找到它后,您需要将其删除或重命名.
这是一个shell一线,为你做:
for dir in $(echo $PATH | tr ":" "\n"); do ls -1 $dir | grep "[.]py"; done
您可以通过尝试以下操作(从几天前重新创建我的错误)在自己的shell中测试这个:
echo 'print("HELLO WORLD")' >> struct.py
现在在我的shell中,留在当前目录下,我看到:
➜ client git:(master) ✗ a HELLO WORLD zsh: command not found: a
大概在你的案例中正在做阴影的Python脚本正在做一些比打印“HELLO WORLD”更多的资源,因此挂起来.