Youtube-dl:找不到 Python (18.04)

jac*_*cci 28 python youtube-dl

我已经完成了 18.04 LTS 的全新安装。然后我安装了 youtube-dl 使用

sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl
Run Code Online (Sandbox Code Playgroud)

当我尝试使用 youtube-dl 时,收到以下错误消息:

rudolffischer@HP8770w:~$ youtube-dl -U
/usr/bin/env: ‘python’: No such file or directory
Run Code Online (Sandbox Code Playgroud)

似乎安装了 Python 3

rudolffischer@HP8770w:~$ python3
Python 3.6.5 (default, Apr  1 2018, 05:46:30) 
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
Run Code Online (Sandbox Code Playgroud)

为什么?

Aja*_*kar 31

Ubuntu 18.04.2 LTSyoutube-dl2019年6月8日版本,之后创建具有以下命令的符号链接:

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

youtube-dl 照常工作,错误"/usr/bin/env: ‘python’: No such file or directory"消失了。

  • 从 Ubuntu 18.04 开始,默认情况下不安装 `python`。只有当您没有实际依赖 Python 2 的包时,您才可以更改符号链接或在 20.04+ 安装上,安装会自动执行此操作的`python-is-python3`。但是,如果您有一些依赖于 Python2 的应用程序,请考虑更改脚本的shebang 以调用 Python 3 作为解释器。 (4认同)

Ale*_*exG 19

您应该能够通过执行以下操作使用您的 python 版本运行 youtube-dl:

/your/path/python3 /usr/local/bin/youtube-dl
Run Code Online (Sandbox Code Playgroud)

通过执行找出您的python3路径 which python3


Lor*_*eel 10

Kulfy 在评论中提出了另一种可能的解决方案,它值得更多的关注。

从 Ubuntu 20.04(Python 的默认版本是python3)开始,您可以安装该软件包python-is-python3

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

该包的作用是自动将 shebang 解释#!/usr/bin/env pythonpython3shebang。通过这种方式,您可以调用youtube-dl而无需预先添加任何命令和/或无需在文件中创建特定别名~/.bashrc

还有一个与 deprecated 等效的包python2,称为python-is-python2.


kar*_*rel 9

可以使用以下命令从所有当前支持的 Ubuntu 版本中的默认存储库安装 youtube-dl:

sudo apt install youtube-dl  
Run Code Online (Sandbox Code Playgroud)

由该命令安装的 youtube-dl 应该可以正常工作而无需更新,除了通常的默认软件更新。

youtube-dl 的自我更新机制在基于 Debian 的操作系统上被禁用。您可以通过安装 youtube-dl snap 包或使用 pip 更新到最新版本的 youtube-dl。

sudo snap install youtube-dl # start with snap run youtube-dl  
Run Code Online (Sandbox Code Playgroud)

或者

sudo apt remove youtube-dl
sudo apt install python3-pip  
python3 -m pip install youtube-dl
Run Code Online (Sandbox Code Playgroud)

  • 尽量避免第一种会下载旧版本的方法,它有错误。第二种方法最好。 (5认同)
  • 这不是 youtube-dl 中的错误,只是 youtube-dl 已过时,因为谷歌经常更改下载 YouTube 视频的规则,而不是 youtube-dl 更新本身。 (3认同)