我刚刚在 Windows Linux 子系统 (WSL) 下的 Windows 上安装了 Ubuntu 18.04.4 LTS。当我运行我的 bash 终端中不存在的命令时(例如,如果我不小心添加了一个额外的 s 到ls
),我收到此错误:
$ lss
-bash: /usr/bin/python: No such file or directory
错误是对的,我只安装了python3:
$ ls /usr/bin/python*
/usr/bin/python3 /usr/bin/python3-jsonpatch /usr/bin/python3-jsonschema /usr/bin/python3.6m
/usr/bin/python3-jsondiff /usr/bin/python3-jsonpointer /usr/bin/python3.6 /usr/bin/python3m
从以前使用 Ubuntu 时,我记得消息应该是“程序 'lss' 可以在以下包中找到:”我不再需要该消息,我不想安装 python2 只是为了让它工作(这个问题有通过安装 py2 解决问题的答案)。
是否可以在不安装 python2、将 python 3 符号链接为 2 或变得完美且不再打错字的情况下解决此问题?
理想情况下,我可以将“命令不存在”脚本移植到 python3 或完全禁用它。
Python3 并不是 python2 的替代品。你需要一个 python3 版本的
lss
.lss
如果我是你,我会更新。它是一个独立的脚本,源代码可以在github上找到。1很明显:“print”在使用python3时需要使用“(”和“)”。我会将脚本放在一个名为
lss3
或类似的文件中,并用于python3 lss3
查找和修复错误。原来我用在我的 bashrc中直接调用的东西覆盖了这个
command_not_found_handle
函数(一个 bash 特性):python
不再需要此代码(曾经有过吗?)并且将其删除解决了我的问题-现在再次输出旧的“可以在以下软件包中找到”。
为了完整性:如果我想跳过命令不存在的 python 代码和简单输出,我可以把它放在我的 bashrc 中: