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.
どうして?
次のコマンドを使用すると、現在サポートされているすべてのバージョンの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
pythonのバージョンでyoutube-dlを実行できるはずです:
python3 /usr/local/bin/youtube-dl
which python3
を実行してpython3パスを見つけます
Ubuntu 18.04.2 LTS
でyoutube-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"
は消えました。
Youtube-dlスクリプトのヘッドには#!/usr/bin/env python
があります。これは、「python」コマンドを使用することを意味します。
https://www.python.org/dev/peps/pep-0394/ ディストリビューションでは、次のコマンドを含めずに、python2またはpython3にリンクされたpythonコマンドを含めることができます。すべて、またはユーザー/管理者に設定を許可します。
Debianベースのインストールには、3つのメインpythonパッケージがあります。
Sudo apt install python
)Sudo apt install python2
)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'
があります]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のシンボリックリンクを作成して修正することも可能ですが、お勧めできません。