Ubuntu 18.04にアップグレードした後、デフォルトでpython3に安全に切り替える方法


12

以来python3のUbuntu 18.04のデフォルトのpythonのバージョンであり、python2新鮮なUbuntuの18.04のインストールではデフォルトで発送することはできません、どのように私は作ることができますpython3(16.04から)Ubuntuの18.04へのアップグレード後にデフォルトを。現在、python2それへのアップグレード後もデフォルトのままです(たとえば、pythonコマンドが指示するpython2など)。ただし、pythonパッケージをパージすると、パッケージに依存するパッケージが多くなりすぎるため、これはここでは選択できません。

理想的には、python2依存関係をできるだけ削除したいです。おそらく、アップグレードプロセスは、python2依存関係に本当に依存しているかどうかをすべてのパッケージをチェックpython2し、同等のpython3依存関係に置き換えることができるすべての依存関係を収集するように設計できます(その後、アップグレードによって解決されます)。


新しい表現を確認してください。以前は、あなたが何を求めているのかがやや不明確でした。投稿のタイトルからこれを整理しようとしました。
ファンアントニオ

@JuanAntonioの編集に感謝します。彼らの編集の大部分はよさそうだ。この質問を正しい方向に導くために、いくつかのさらなる修正を行いました。
zazi

これは安全ですか、python2の削除またはそのままにすることの終わりは何ですか。そこにあれば、何かがそれを必要とします!
ジョージウドセン

2
実際、python 2はデフォルトで18.04にインストールされていないため、ある場合、追加のパッケージをインストールした(または上記のパッケージが既にインストールされている状態でアップグレードした)ため、python 2が必要です。その3.xがデフォルトです。アーカイブで2.xを使用するものがなくなるという意味ではありません。20.04は、その時点でアップストリームによってサポートされなくなるため、確実にpython 2.xはもうありません。
dobey

「python2の削除の終わり」-かなりクリーンなシステム。アップグレード後に何らかの理由で壊れた私のpythonのインストール。
zazi

回答:


12

この投稿は少し古いですが、より良い代替手段があると思いますupdate-alternatives。次の/usr/bin/pythonコマンドでは、デフォルトで2.7に設定されますが、必要なときに3.6を使用できます。

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 20
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 10

ここでの最高の優先順位は「自動」選択として使用され/usr/bin/pythonますが、を実行することで簡単に切り替えることができますsudo update-alternatives --config python


1
いい答え。私の場合、python2.7はnodejs / npmによってインストールされ、どういうわけかのデフォルトとして設定されていましたpython。以前sudo update-alternatives --remove-all pythonはすべてのpythonを削除してから、使用したい唯一のpythonを追加しましたsudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 10。また、sudo update-alternatives --list python何が何であるかを確認することも重要です。
philshem

1
あなたもやってみたいことsudo apt install python3-pipsudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 10
ダニエル

10

python2を完全に削除するには、次のようにしてpython2.x-minimalパッケージをパージする必要があります

sudo apt purge python2.x-minimal

xをシステム上のpython 2の正確なバージョンに置き換えます。ただし、アップグレード後もpython 2に依存するパッケージが残っている可能性があるため、他のどのパッケージが削除されているかを確認してください。これらのパッケージもアンインストールされ、機能しなくなります。


「デフォルト」のpythonインタープリターなどはありません。実際のファイルが/usr/bin/python指すファイルに依存しているため、これをpythonに変更するには、lnコマンドを使用してリンクを更新します。たとえば、python 3.6を指すようにするとします。

sudo ln -sfn /usr/bin/python3.6 /usr/bin/python

別の方法として、これをユーザーに必要なだけの場合は、でエイリアスとして設定できます.bashrc。これを行うには、~/.bashrc選択したエディターで開き、次の行を追加します。

alias python='python3.6' 

「アップグレード後もpython 2に依存するパッケージを実行していた可能性があるため」<-はい、Ubuntu 18.04はpython2デフォルトを使用して依存関係なしで実行するため、この依存関係は本当に必要ないため、取り除くことが目的ですpython3依存関係/パッケージ。
zazi

1
これは安全ですか、python2の削除またはそのままにすることの終わりは何ですか。そこにあれば、何かがそれを必要とします!
ジョージウドセン

0

私の16.04 /usr/bin/pythonは単なるリンクな/usr/bin/python2.7ので、このリンクを指すように変更する必要があると思います/usr/bin/python3.xxもちろん十分です)。


インストールされている最新のpython3バージョンへのリンクであるをポイント/usr/bin/pythonすることもできます/usr/bin/python3。または、単にエイリアスまたは内の関数~/.bashrc
たくさん

いいえ、おそらく、これは私がここでやりたいことではありません。私python2は自分のシステムでそれを取り除きたいです(それは新しいubuntu 18.04をインストールするときのデフォルトのケースで、デフォルトpython3はデフォルトであり、デフォルトでpython2はインストールされません)
zazi

2
@zaziパージはお勧めしませんpython2。他の多くのパッケージがそれに依存しているようです。python2インストールしたままにすることによるデメリットはありますか?
Kev Inski 2018

python2本当に必要な場合は、インストールしたままにすることに不都合はありませんが、python3デフォルトとして明確に設定したい、つまり、python2できるだけ頻繁に削除したい(そして、Ubuntu 18.04のクリーンインストールは、これが可能であることを示しています)。
zazi

確かにそうです。
Kev Inski 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.