错误的解释器没有这样的文件或目录 /usr/bin/python

vb.*_*net 7 python

我创建了脚本 python 并将其移至 /usr/bin 并通过 sdfgdgh 命名脚本而不使用 .py 并在脚本中编写此代码

#! /usr/bin/python

print("worked")
Run Code Online (Sandbox Code Playgroud)

我得到了脚本 chmod +x
但是当我输入终端 sdfgdgh 给我错误:

错误的解释器没有这样的文件或目录 /usr/bin/python

为什么?解决方案是什么?

run*_*g.t 8

问题出在您的 python 安装上。可能你的/usr/bin/python要么根本不存在,要么是一个指向不存在的python的死符号链接。

所以第一个解决方案是检查是否/usr/bin/python存在。如果是这样,请检查它是否不是死链接,如果是,请修复链接以指向现有的 python 解释器:

cd /usr/bin
sudo ln -fs <full_path_to_existing_python_binary> python
Run Code Online (Sandbox Code Playgroud)

如果您不能或不想更改/usr/bin/python但您安装了 python 并且系统识别了它的位置(即python从 shell调用),您可以尝试更改脚本作为解决方法:

#! /usr/bin/env python
print("worked")
Run Code Online (Sandbox Code Playgroud)

这样你的脚本就会使用 python 作为解释器,而不管真正的 python 位置如何,只要它在你的 PATH 中。


Kri*_*ofe 7

  1. 首先检查你安装的是哪个python
$ which python
/usr/bin/python
Run Code Online (Sandbox Code Playgroud)
  1. 然后检查是否可执行
python -V
Python 2.7.5
Run Code Online (Sandbox Code Playgroud)
  1. 如果你在 Linux 上运行 dos 格式的 py 文件,你也会遇到这个问题。

方法一:检查dos文件格式,cat -v filepath看看该行是否以^M.

方法b: vim filepath-> :set ff 查看,例如"eni.py" [dos] 64L, 2151C

方法 c: file filepath检查是否有CRLF file_path:Python 脚本,UTF-8 Unicode 文本可执行文件,带有 CRLF 行终止符

vim filepath解决方案:您可以使用then将filefort设置为unix:set ff unix

  • 有一个不错的实用程序 **dos2unix**,您可以安装它来将文件从 dos 格式转换为 unix 格式。 (2认同)

小智 6

我遇到了类似的问题,我在 Ubuntu 20.04 中安装了一个依赖于 Python 2 的软件包。这搞乱了python. 我必须卸载该软件包:qjoypadxboxdrv以及另一个;卸载 python 2 与sudo apt remove python.

然后为了确认,我使用了which python它给出了空白输出。下一步是cd /usr/bin创建一个符号链接sudo ln -fs python3 python

  • 我尝试了这个,但在 montery 上它给了我`ln:/ usr / bin / python:不允许操作` (4认同)