ubuntu/usr/bin/env:python:没有这样的文件或目录

Hao*_*Hao 14 python ubuntu-9.04

我更新内核,之后Ubuntu运行不正常,PS:我尝试执行"meld"命令,它会报告"/ usr/bin/env:python:没有这样的文件或目录",然后我执行"sudo apt-get install python"并获得结果"python已经是最新版本了.",我该怎么办呢.


我不擅长linux,你能告诉我如何将我的linux恢复到最后的状态,或者正常地重新安装python.

Fra*_*ani 128

问题场景

/usr/bin/env: ‘python’: No such file or directory
Run Code Online (Sandbox Code Playgroud)

可能的解决方案 #1

  • 如果未安装 Python 3,请安装它: apt-get install python3

可能的解决方案#2

  • 如果已安装 Python 3,请运行以下命令: whereis python3

  • 然后我们为它创建一个符号链接: sudo ln -s /usr/bin/python3 /usr/bin/python

  • 我使用了下面的解决方案,如果它是在官方 apt repo `sudo apt install python-is-python3` 中提供的,感觉会更安全。 (11认同)
  • 这正是我在 Ubuntu 20.04 中所需要的。谢谢,弗朗西斯科! (8认同)

aSt*_*eve 60

我自己一直被这个错误困扰,我想我会发布我如何解决我的问题.

我的问题是一个错误:

: No such file or directory
Run Code Online (Sandbox Code Playgroud)

这对我来说没什么意义.我的问题是我的编辑器默默地将脚本从Unix LF转换为Windows CR/LF线路终端.一个相当不幸的结果是"#!/ usr/bin/env python"实际上变成了"#!/ usr/bin/env python\015",其中\ 015是不可见的CR字符.../usr/bin /然后,env无法找到命令"python\015" - 因此文件未找到错误.

将脚本转换为Unix行结束约定解决了我的问题...但只是在几分钟后才开始搔痒.

  • 非常感谢...作为旁注,您可以通过`fromdos <filepath>`将win endings转换为unix结尾,并且`fromdos`实用程序在标准repos中的`tofrodos`包中. (3认同)
  • @endolith 它仍然不是(好吧,我正在检查 Debian,但我认为 Ubuntu 是相同的,shebang 由 Linux 内核解析)。但现在错误消息好多了: `/usr/bin/env: 'python3\r': No such file or directory` (2认同)

Nor*_*man 30

2022 年 5 月:对于刚刚更新到Monterey 12.3 的任何人来说,更新似乎用 python3 替换了 python。下载python修复了Xcodegit命令行中的问题。请务必阅读下面的两条评论。

  • 我通过 homebrew 使用 python 并遇到了类似的错误,因此受到其他答案的启发,我运行了`sudo ln -s /opt/homebrew/bin/python3 /opt/homebrew/bin/python`,事情又神奇地工作了。谢谢 (8认同)
  • 对于那些不知道的人来说:Python 2 已经停产,现阶段甚至没有收到安全更新。升级到Python 3确实非常重要! (3认同)

Dan*_*elM 20

对于在 MacOS 上遇到同样问题并使用自制软件安装了 python3 的人:

sudo ln -s /opt/homebrew/bin/python3 /opt/homebrew/bin/python
Run Code Online (Sandbox Code Playgroud)


mch*_*hid 18

在 Ubuntu 20.04 和更新版本上,有一个包可以解决这个问题。运行以下命令:

sudo apt update
sudo apt install python-is-python3
Run Code Online (Sandbox Code Playgroud)

运行apt-cache show python-is-python3以获取更多信息。


Ale*_*x H 15

对于使用 macOS 或 M1 机器(在 12.5 上测试)的用户,符号链接 /usr/bin/python3 将不起作用,因为它是 xcode python3 安装的填充程序。针对 shim 的符号链接只会导致 xcode 安装工具提示安装所需的二进制文件的无限循环。

相反尝试:

sudo ln -s /Library/Developer/CommandLineTools/usr/bin/python3 /usr/local/bin/python
Run Code Online (Sandbox Code Playgroud)

绕过 shim 和到 python3 二进制文件的符号链接(从技术上讲,这是指向 xcode 安装的实际 python3 二进制文件的几个符号链接的符号链接,但它已经足够了,因为我们实际上只需要绕过 shim)。

由于这种情况将来可能会发生变化,因此我将包含以下有关如何在 macOS 中填充某些二进制文件的阅读材料:

https://macops.ca/developer-binaries-on-os-x-xcode-select-and-xcrun/ https://randomtechnicalstuff.blogspot.com/2016/05/os-x-and-xcode-doing- it-apple-way.html

有些人可能对此感兴趣。


sta*_*iet 11

只需修改shebang行即可

#!/usr/bin/env python #!/usr/bin/env python3,您可以走了。


  • 这是由 sudo apt install python-is-python3@mchid回答的自动完成的。

  • 为什么这有效:如果你这样做$ python,它会说Command 'python' not found ...,但如果你这样做$ python3,它应该有效。

  • 这是一个更好的选择,假设您可以轻松修改脚本 (2认同)

小智 5

创建符号链接为我解决了这个问题

sudo ln -s /usr/bin/python3 /usr/bin/python
Run Code Online (Sandbox Code Playgroud)