web-dev-qa-db-ja.com

「/ usr / bin / env python」のデフォルトはpython3

Apt-getでpython2.7とpyhton3.5をインストールしました。
。bashrcには、python3をデフォルトにするalias python=python3があります。これはpythonを直接実行するだけで機能しますが、/ usr/bin/envでは機能しないようです。

この場合、どのようにpython3を強制できますか?

$ python --version
Python 3.5.2
$ /usr/bin/env python --version
Python 2.7.12
7
r03

これは、envが、pythonPATHを検索しているためであり、Shellビルトイン、エイリアス、関数ではありません。 pythonをエイリアスとしてpython3として定義したので、envはそれを見つけられません。PATHを検索し、python/usr/bin/pythonpython2)に解決します。

実行可能なpythonの使用可能な場所をすべて確認するには、bashで次のようにします。

type -a python

定義上、Shebangでエイリアスを使用する場合、Shebangはインタープリター実行可能ファイルへのフルパスである必要があり、env/usr/bin/env pythonを使用するときにpythonを解決する必要があります。 python3を使用してスクリプトを解釈するには、Shebangを使用します。

#!/usr/bin/env python3
9
heemayl

/ usr/bin/envを呼び出すスクリプトの数を考えると、pythonはpython 2を期待していますが、pythonを実際にpython 3。

Bennyがコメントで述べたように、/usr/bin/env python3は正しい解決策です。

2
Hack Saw