我创建了脚本python并将其移动到/ usr / bin并且我用sdfgdgh命名了脚本而没有.py我用脚本编写了这段代码
#! /usr/bin/python
print("worked")
我得到了脚本chmod + x
但是当我输入终端sdfgdgh时给我错误:
错误的解释器没有这样的文件或目录/ usr / bin / python
为什么以及解决方案是什么?
答案 0 :(得分:3)
我有类似的问题,我在Ubuntu 20.04中安装了一个依赖于Python 2的软件包。这弄乱了python
的含义。我必须卸载该软件包:qjoypad
,xboxdrv
和另一个;使用sudo apt remove python
卸载python 2。
然后确认,我使用了which python
,该输出为空白。下一步是转到cd /usr/bin
,然后使用sudo ln -fs python3 python
创建符号链接。
答案 1 :(得分:1)
$ which python
/usr/bin/python
python -V
Python 2.7.5
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
答案 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 上执行。以下步骤为我解决了问题:
从 ^M 你可以看到文件 myscript.py 使用的是 windows/dos 风格的换行符,而不是 Linux 风格
答案 5 :(得分:-1)
只需运行:-
sudo bash -c "test -e /usr/bin/python || (apt -qqy update && apt install -qy python-minimal)