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

时间:2017-12-14 21:49:19

标签: python

我创建了脚本python并将其移动到/ usr / bin并且我用sdfgdgh命名了脚本而没有.py我用脚本编写了这段代码

#! /usr/bin/python

print("worked")

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

  

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

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

6 个答案:

答案 0 :(得分:3)

我有类似的问题,我在Ubuntu 20.04中安装了一个依赖于Python 2的软件包。这弄乱了python的含义。我必须卸载该软件包:qjoypadxboxdrv和另一个;使用sudo apt remove python卸载python 2。

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

答案 1 :(得分:1)

  1. 首先检查您安装了哪个python
$ which python
/usr/bin/python
  1. 然后检查其是否可执行
python -V
Python 2.7.5
  1. 如果在Linux上运行dos格式的py文件,也会遇到此问题。 方法一: 使用cat -v filepath检查dos文件格式,以查看行是否以^M结尾。 方法b: vim filepath->:set ff进行检查,例如“ eni.py” [dos] 64L,2151C 方法c: file filepath检查是否有CRLF file_path:Python脚本,UTF-8 Unicode文本可执行文件,带有CRLF行终止符

解决方案: 您可以使用vim filepath然后:set ff unix

将filefort设置为unix

答案 2 :(得分:0)

问题在于你的python安装。可能你的/usr/bin/python根本不存在,或者它是指向不存在的python的死符号链接。

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

cd /usr/bin
sudo ln -fs <full_path_to_existing_python_binary> python

如果您不能或不想更改/usr/bin/python但是您安装了python并且它的位置被系统识别(即从shell工作中调用python)您可以尝试更改脚本作为一个工作场所:

#! /usr/bin/env python
print("worked")

这样,只要它在你的PATH中,你的脚本就会使用python作为一个interpetter而不管真正的python位置。

答案 3 :(得分:0)

您可以使用以下命令安装python

apt install python

之后,python命令将起作用。

答案 4 :(得分:0)

我遇到了同样的问题。也许您正在将 Windows 上的脚本作为文件编辑并在 Linux 上执行。以下步骤为我解决了问题:

  1. 在终端上编辑-> sudo vi myscript.py
  2. 添加python位置-> #!/location/anaconda/bin/python

从 ^M 你可以看到文件 myscript.py 使用的是 windows/dos 风格的换行符,而不是 Linux 风格

答案 5 :(得分:-1)

只需运行:-

sudo bash -c "test -e /usr/bin/python || (apt -qqy update && apt install -qy python-minimal)