「pythonインストールが破損している」を修正するには?


37

do-release-upgrade次の問題を使用して、13.10から14.04(現時点では開発者、数時間で安定)にアップグレードしようとしていました。

Can not upgrade 

Your python install is corrupted. Please fix the '/usr/bin/python' symlink.

少しいじって問題を解決したので、ここで私のソリューションを共有したいと思います。これが誰かを助けることを願っています。

回答:


53

/usr/bin/pythonエラーメッセージに示されているように、シンボリックリンクが変更されたことが原因であることが判明しました。を使用update-alternatives/usr/bin/pythonていたので、それはを指していました/etc/alternatives/python。ことが判明しdo-release-upgrade、このシンボリックリンクとは本当に厳しいですし、単にでpython2.7を選択するとupdate-alternatives、私は元の状態にそれを強制することになったので、十分ではありません。

sudo ln -sf /usr/bin/python2.7 /usr/bin/python

そしてそれは問題を解決しました。

これがうまくいかない場合は、Pythonインストールが完全に破損していると思います。お勧めします

sudo apt-get install --reinstall python

@BenjaminKohl助けてくれてうれしかった:)
4ae1e1 14

/etc/alternatives/pythonシンボリックリンクされていません/usr/bin/python2.7か?他に何か優先順位がありましたか?
heemayl

私はあなたがそれを逆方向に取得しているのではないかと思っています.... /usr/bin/python2.7は実際のバイナリであり、シンボリックリンクであってはなり/etc/alternatives/pythonません。
-heemayl

@heemayl申し訳ありませんが、私の側のコメント+タイプミスを読み間違えました。/usr/bin/pythonはシンボリックリンクです/etc/alternatives/python(もちろん/usr/bin/python2.7バイナリですが、ここでは問題ではありません)。
4ae1e1

そして、はい、/etc/alternatives/pythonそれからあなたが選択したものにシンボリックリンクされます(必ずしもそうではありません/usr/bin/python2.7-なぜあなたupdate-alternativesはその場合に必要なのでしょうか?)が、ポイントはシンボリックリンクが/usr/bin/pythonあなたのために許可されていないということですdo-release-upgrade
4ae1e1

16

これは正しいです:

sudo update-alternatives --remove-all python
sudo ln -sf /usr/bin/python2.7 /usr/bin/python

2
これは絶対に正しいです。それを使用して既存のすべてを最初に削除するまで、私にとってはうまくいきませんupdate-alternatives --remove-all python
でした-TryTryAgain

5

Ubuntu 18.10でも同じ問題があります。

/ usr / bin / pythonは古いバージョンにリンクされています。2.7以降でも利用可能ですが、この超スマートなプロセスは(18.10で!)P 2.7を要求しています。それで私はそれを与え、それは受け入れられました。

これは私のためにそれを解決しました:

1)/ usr / bin / pythonを削除する sudo rm /usr/bin/python

2)新しいリンクを作成する sudo ln -sf /usr/bin/python2.7 /usr/bin/python

18.10では、sudo update-alternatives --remove-all python またはを使用できませんsudo apt-get install --reinstall pythonでした。

私のために働く。それがあなたにも役立つことを願っています。


ls -sfターゲットをオーバーライドするので、1)無意味であり、2)私の答えがあなたにそうするように言った通りです。なんて無駄
...-4ae1e1

怒らないでください:あなたの引用は間違っているので、「... --reinstall python」についてあなたが言ったことの反対を言いました。はい、18.10での私の経験はあなたのものとは異なります。これについて説明します。大胆なコメントはまったく必要ありません。
-advice_no9

「これで問題が解決しない場合は、Pythonインストールが完全に破損していると思います。」
4ae1e1

基本的に、レッスンは次のとおりです。周囲を読んで、コードブロックがあるだけでなく、それを端末に貼り付けて(危険な)理由を調べ、スティックが何であるかを確認します。ところで、あなたsudo rmはまだ無意味です。
4ae1e1

1
確かに、18.10で動作します。ありがとう。

1

以下のためのUbuntu 19.04のデフォルトのPythonのバージョンは3.7です。Ubuntu 19.10へのアップグレード中に同じエラーが発生し、次のことが役立ちました。

sudo apt-get install --reinstall python3
sudo ln -sf /usr/bin/python3.7 /usr/bin/python3

pythonパッケージに非常に深刻な問題がある場合、残っている唯一の方法は強制的に削除してから再インストールすることです:

sudo dpkg --remove --force-remove-reinstreq --force-depends python3
sudo apt-get -f install

0

あなたがこれに関して遭遇した/usr/bin/python3場合:

sudo update-alternatives --remove-all python3
sudo ln -sf /usr/bin/python3.6 /usr/bin/python3

シンボリックリンクすることを確認しません。少なくともにアップグレードするときに必要でした。python3.63.7Ubuntu 18.1019.04

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