'/ usr / bin / envpython'のデフォルトはpython3です



Default Python3 Usr Bin Env Python



解決:

それは環境は検索していますあなたのパイソン組み込みのシェル、エイリアス、関数ではなく、PATH。あなたが定義したようにpython asエイリアスとしてのpython3、envはそれを見つけられません、それは検索しますパスと解決されますPythonから/ usr / bin / python(これはpython2)。

実行可能ファイルの利用可能なすべての場所を確認できますPython、でbash、実行:



タイプ-apython

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

#!/ usr / bin / env python3 

/ usr / bin / envpythonを呼び出すスクリプトの数がpython2であることを考えると、pythonを実際にpython3にするのはおそらく悪い考えです。



ベニーがコメントで言ったように、/ usr / bin / envpython3が適切なソリューションです。


私はここに投稿されたものよりも良い解決策を見つけました:http://redsymbol.net/articles/env-and-python-scripts-version/

基本的な考え方は、他のスマートな名前のディレクトリにあるpython3へのシンボリックリンク名pythonを配置し、そのディレクトリを$ PATHの先頭に配置して、/ usr / binにあるディレクトリの前に配置することです。



そう:

mkdir〜 / bin / env_python3 / ln -s / usr / bin / python3〜 / bin / env_python3 / python $ PATH =〜/ bin / env_python3 /:$ PATH ./script.py

このソリューションを使用すると、/ usr / bin / pythonをpython3にシンボリックリンクしたり、python 2であると想定するスクリプトを壊したりすることはなく、他の人からダウンロードしたスクリプトを編集する必要もありません。