Ubuntu 18.04インストールPython 3.7およびインストール後terminalが開かず、aptが見つかりません.pkgの解決方法

2764 ワード

Ubuntu 16.04はPPAライブラリを追加することでpython 3.7をインストールすることもできるし、ソースコードのコンパイルでインストールすることもできます.CSDNの大物たちはとっくに関連する投稿をたくさん出しています.ここでは言いません.
Ubuntu 18.04にアップグレードして、aptソースはpython 3.7を持っていて、直接sudo apt-get install python 3.7を通じてインストールすればいいです

でも、問題が来た!!


python 3.5からpython 3.6にアップグレードしても、3.6から3.7にアップグレードしても、3.5から3.7に直接アップグレードしても、アップグレード後は基本的に次のような問題が発生します.

1.コマンドライン出力python 3が開いているかpython 3.6が開いているか


この単純な場合python 3.7をリンクしていないためpython 3.7をpython 3の解釈器に更新する必要がある
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 50
sudo update-alternatives --config python3  
#       python3  Ubuntu   python 3.7     

2.最初のステップでterminalが開かなくなった


本当にpython 3.7のせいだ!
terminalはUbuntuリリースごとに用意されたgnome-terminalスクリプトから来ています.場所は/usr/bin/gnome-terminalです.vimまたはgeditで表示できます.
#! /usr/bin/python3

ここで、上の文だけを修正します.
#! /usr/bin/python3.6

terminalを回帰させることができます.
terminalは開発段階で独自のpython 3.6/3.5解釈器を使用しており、python 3.7にアップグレードすると、その中のいくつかの組み込み関数や文法が変化し、terminalが開かなくなり、一般的には
sudo apt-get install gnome-terminal

terminalを更新して問題を解決するが、再インストールしても問題が解決しない場合がある.現在のUbuntuバージョンに対応するソースには更新版のterminalがないため、上記の修正解釈器を使用して一時的に解決することができる.

3.驚いた!apt_pkgが見つからない

ImportError: No module named 'apt_pkg'

このエラーはsudo apt-get update/install,pip install,import modulesを実行するときに発生します.
apt_pkgパッケージはpython_からaptまたはpython 3_apt,同2,Ubuntuリリース版はpython 3に対応する.xのバージョンは、より高いバージョンではなく、より高いバージョンのpythonが問題をもたらすことを大きく説明することができます.ここでの問題は、distパッケージのapt_pkg.cython.*.soライブラリバージョンは対応できません.
python 3.5がpython 3.6にアップグレードされた場合、または低バージョンから3.5にアップグレードされた場合に使用できます.
sudo apt-get install python3-apt --reinstall

従来のUbuntuソースでは、python 3.5と3.6に対応するapt_がある可能性があります.pkgのsoライブラリは、解決できるかもしれませんが、こんなに多くのUbuntuバージョン(同じ16.04でも異なるサブバージョンに対応している可能性があります)については、本当に運が悪いのか、下記の方法で試してみるしかありません.
python 3.7一時解決apt_pkgは、3.6および3.5に適用する.
apt_pkgのcythonバッグは
cd /usr/lib/python3/dist-packages

ディレクトリの下でlsは後でapt_を見つけることができますget.cython-(34m, 35m, 36m)-x86_64-linux-gnu.soファイル、ここでカッコは、apt_を所有していると仮定すると、存在する可能性のあるバージョン、すなわち34または35または36を指す.get.cython-36m-x86_64-linux-gnu.so,ターゲットpythonバージョンは3.7
ln -s apt_get.cython-{36m,37m}-x86_64-linux-gnu.so
# {36m,37m}   ln -s     , 36m   37m       

lsの後にターゲットのaptが見えますget.cython-37m-x86_64-linux-gnu.soライブラリファイル、sudo apt-get updateを実行してもapt_は報告されません.pkgで見つからない問題は、次に
sudo apt-get install python3-pip

これも一時的な解決策にすぎず、「使えばいい」という原則に基づいて、十分です.
 
Ubuntu 16.04から18.04の公式ソースの変化傾向に従って、公式は次の大きなバージョンでより優雅な解決策を放出するに違いない.
emmmmmmm、愚人拙見、ご指摘ください.