'Python'プログラムコマンドにPython3を実行させる方法は?

その python プログラムコマンドはPython2を実行します。 Python3は以下を使って実行することができます。 python3 コマンド。 どのようにPython3を使用して実行できますか python コマンド?

システム全体のパッケージをインストールできます:

$ sudo apt install python-is-python3

注意事項を参照してください:Ubuntu20.04のpython-is-python3パッケージ-それは何ですか、そしてそれは実際に何をしますか?

簡単で安全な方法は、エイリアスを使用することです。 これを ~/.bashrc または ~/.bash_aliases ファイル:

alias python=python3

上記をファイルに追加した後、次のコマンドを実行します source ~/.bashrc または source ~/.bash_aliases.

例えば:

$ python --versionPython 2.7.6$ python3 --versionPython 3.4.3$ alias python=python3$ python --versionPython 3.4.3

エイリアスを回避するには、次のコマンドを使用します command 組み込みコマンド:

$ command python --versionPython 2.7.6

エイリアスを回避する別の方法は、次を使用することです \ コマンドの前に。

$ \python --version Python 2.7.6

現在のシェルでエイリアスを無効にするには、次のコマンドを使用します unalias 組み込みコマンド:

$ unalias python$ python --versionPython 2.7.6

オン Ubuntu20.04+ ちょうど取付けて下さい python-is-python3 パッケージ:

sudo apt install python-is-python3

その上で、Python2が将来的に何かの依存関係としてインストールされるのを防ぐことができます apt-mark hold:

sudo apt-mark hold python2 python2-minimal python2.7 python2.7-minimal libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib 

[2016年6月] 移行に関する情報のための推奨される場所は公式です Ubuntu Python ページ。


から Ubuntu wiki:

UbuntuとDebianの両方で、私たちは持っています 進行中 プロジェクト 目標 Python3をデフォルトにするには、distrosでPythonバージョンを優先します。

これは何ですか しません 平均:

  • /usr/bin/python Python3を指します。 いいえ、これは起こるつもりはありません (ない限り PEP394 それ以外の場合は、予見可能な将来のために疑わしい)を提唱しています。 /usr/bin/python/usr/bin/python2 Python2.7を指し、 /usr/bin/python3 サポートされている最新のPython3バージョンを指します。

  • Python2はアーカイブから削除されます。 いいえ、これは起こるつもりはありません. 私たちは、Python2.7がUbuntuでかなり長い間サポートされ、利用可能なままであることを期待しています PEP373 2020年までのアップストリームバグフィックスメンテナンスサポートをお約束します。

他のパッケージの依存関係のためにシンボリックリンクを変更することはお勧めしませんが、"Python3をディストリビューションのデフォルトの優先Pythonバージ


CLIの使用のために、のような @Radu Radeanu、私はユーザーの中にエイリアスを置くことをお勧めします ~/.bashrc, .bash_aliases ファイル(以下を含む異なるファイル ~/.bash_profile、少なくとも一度はロードされ、主に組織目的のためですが、プラットフォームによって異なる場合があります)。 パイソン 仮想環境 また、うまく動作します。

エイリアスの例:

alias python=python3

または

alias python='/usr/bin/python3'

スクリプトはまだ次のようなものを使用す #!/usr/bin/env python3 相互互換性のために。

を使用して env 仮想環境との混在使用に適しています。

注(@wjandreaのおかげで):エイリアスはbashランタイムの一部であり、ユーザー環境の一部ではありません。 したがって、それらはshebangには利用できません(#!). エイリアスpython=python3を好む場合は、いくつかの program.py shebangがなければ、次のようにエイリアスされたインタプリタを呼び出すことで実行できます python program.py. エイリアシングは、3.4と3.6のような複数のバージョンのpython3を一緒に持つシステムでも便利です。

更新:これは間違った方法ですが、Python2とPython3は互換性がないため、私は学びました。

コマンドラインツールを試すことができます update-alternatives.

$ sudo update-alternatives --config python

エラー"no alternatives for python"が表示された場合は、次のコマンドを使用して自分で代替を設定します:

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

パスを変更する /usr/bin/python3 それに応じてあなたの希望のpythonバージョンに。

Ubuntu、およびそのことについては、Linuxディストリビューションの残りの部分は、まだアプリケーションやコマンドの数のためのPython2.7に大きく依存しています。 "Python"のデフォルトの参照をPython3に変更すると。x、その後、Python関数の数は、アサーションエラーをスローし始めます。

たとえば、Ubuntuでは、ファイルを直接編集してshebangを参照するように変更しない限り、'pip'for oneは正しく実行されなくなりました'#!/usr/bin/env python2.7'。 Red Hat、Fedora、CentOSなどのRHEL(Red Hat Enterprise Linux)フレーバーでは、'Yum'コマンドもPython2.7に依存しています。

ここでの私のポイントは、python3を参照するために端末に'python'と入力できるように、かなりの量のコードがアサーションエラーのスローを開始することです。x.

ターミナルで'python3'コマンドとshebang'#!を使用する方がはるかに優れています。あなたのPython3の/usr/bin/env python3'。xファイル。

やる

cd ~gedit .bash_aliases

その後、どちらかを書きます

alias python=python3

または

alias python='/usr/bin/python3'

ファイルを保存し、ターミナルを閉じて再度開きます。
リンク

単純に/usr/bin/pythonと/usr/bin/pipを削除すると非常に便利です。 これにより、すべてのプログラムは"python2"と"python3"コマンドに依存するように強制されます。

いくつかのオプションと古いパッケージはに依存していますが #!/usr/bin/python 仕事をするために、私はむしろ奇妙な、時にはデバッグが難しいミスをし続けるよりも、それらのプログラムにパッチを提出したいと思います。

cat > /usr/local/bin/py << 'EOF'#!/bin/dashpython3 "$@"EOF

(あなたが/usr/local/binへの書き込み権限を持っていれば)同様に

cat > /usr/local/bin/pyi << 'EOF'#!/bin/dashpython3 -i "$@"EOF

次に、pyと入力するだけです(#でpyを使用します! あなたの選択したpythonのための行)。

ちょうど警告:/usr/bin/pythonシンボリックリンクを2.7ではなくpython3を指すように変更しようとしないでください。 Ubuntu reposで利用可能な多くのプログラムでは、python2と互換性があるために/usr/bin/pythonが必要です。x.

別のメモでは、Python3をデフォルトにしようとしているのでここに来る人は、代わりに仮想環境(例:virtualenv)やコンテナ(例:LXCやDocker)の研究に使用することがで

@wjandrea、はい、仮想環境でも、pythonは`python2’を意味するものとして保持する必要があります。 私は、システムのPythonを回避しようとするのではなく、アプリケーション固有のPythonバージョンを持つ方法として私のコメントを意味しました。

ああ、今、私はあなたがアップグレードで意味したものを得ました。… 実際にUbuntuの開発者はそれに取り組んでいます:Python/3 - Ubuntu Wiki 「ubuntu14.04LTSのリリース目標は、デスクトップCDイメージにPython3のみを使用することです。"

上部のsoulsourceの警告を参照してくださいPEP394python実行可能ファイルを共存させるための命名規則を標準化し、Pythonプログラマとパッケージメンテナが依存する(そしてすべきである)。

‘sudo apt install python-is-python3’(Ubuntu20.04以降の場合)

@soulsource、ええ、私はそれを知っています。 私は"アップグレード"オプションが利用可能かどうかを尋ねた理由です。

Radu Rúdeanuの答えはすでに最適解に非常に近いと思います。 これは一人のユーザーにのみ適用され、pythonコマンドを入力してpythonを直接実行する場合にのみ有効であり、#!/usr/bin/python shebang。

@soulsourceそれが私が探しているものです! :)ありがとう!

@Kevin私はちょうどvirtualenvを使ってみましたが、ターミナルからGeditを開くとすぐに、プラグインがPython2を必要とするように見えるため、たくさんのエラーが発生し 同様の問題は、コマンドpythonがPython2であることに依存する他のソフトウェアでも発生する可能性があります。