web-dev-qa-db-ja.com

Youtube-dl:Pythonが見つかりません(18.04)

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

Youtube-dlを使用しようとすると、次のエラーメッセージが表示されます。

rudolffischer@HP8770w:~$ youtube-dl -U
/usr/bin/env: ‘python’: No such file or directory

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.

どうして?

5
jacobacci

次のコマンドを使用すると、現在サポートされているすべてのバージョンのUbuntuのデフォルトリポジトリからyoutube-dlをインストールできます。

Sudo apt install youtube-dl  

このコマンドでインストールされたyoutube-dlは、通常のデフォルトのソフトウェア更新を除き、更新する必要なく正常に動作するはずです。

youtube-dlの自己更新メカニズムは、Debianベースのオペレーティングシステムでは無効になっています。 youtube-dlを最新バージョンに更新するには、pipを使用するか、youtube-dlスナップパッケージをインストールします。

Sudo apt remove youtube-dl
Sudo apt install python3-pip  
Sudo pip3 install youtube-dl  

または

Sudo snap install youtube-dl # start with snap run youtube-dl
4
karel

pythonのバージョンでyoutube-dlを実行できるはずです:

python3 /usr/local/bin/youtube-dl

which python3を実行してpython3パスを見つけます

3
AlexG

Ubuntu 18.04.2 LTSyoutube-dlバージョン2019.06.08で、次のコマンドでシンボリックリンクを作成した後:

$ Sudo ln -s /usr/bin/python3 /usr/local/bin/python

youtube-dlは通常どおり機能し、エラー"/usr/bin/env: ‘python’: No such file or directory"は消えました。

2

Youtube-dlスクリプトのヘッドには#!/usr/bin/env pythonがあります。これは、「python」コマンドを使用することを意味します。

https://www.python.org/dev/peps/pep-0394/ ディストリビューションでは、次のコマンドを含めずに、python2またはpython3にリンクされたpythonコマンドを含めることができます。すべて、またはユーザー/管理者に設定を許可します。

Debianベースのインストールには、3つのメインpythonパッケージがあります。

  • python(Sudo apt install python
  • python2(Sudo apt install python2
  • python3(Sudo apt install python3

「python」パッケージはpythonバージョン2をインストールし、「python」コマンドを含みます(symlink/usr/bin/python->/usr/bin/python2)。

「python2」および「python3」パッケージは、「python」コマンドを提供しません。つまり、CLIまたはスクリプトから「python」を呼び出すと、「command not found」エラーが発生します。

これらを使用している場合、次のいずれかを行う必要があります。

  • 好きなバージョン(python2 /usr/local/bin/youtube-dlまたはpython3 /usr/local/bin/youtube-dl)を使用してスクリプトを呼び出します[個人的に、.bash_aliasesにalias youtube-dl='python3 /usr/local/bin/youtube-dl'があります]
  • youtube-dlスクリプトを編集して、python2またはpython3(Sudo sed -i '1s/python/python2/' /usr/local/bin/youtube-dl)または(Sudo sed -i '1s/python/python3/' /usr/local/bin/youtube-dl)を使用します。

上記では、ファイルをそのままにして、ファイルが更新されるたびに編集する必要がないため、エイリアスオプションを使用することをお勧めします

/ usr/bin/pythonのシンボリックリンクを作成して修正することも可能ですが、お勧めできません。

0
Chris Slycord