如果设置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”更多的资源,因此挂起来.