Pythonのデフォルトバージョンを変更すると、Ubuntu 20.04がクラッシュします。

Pythonのデフォルトバージョンを変更すると、Ubuntu 20.04がクラッシュします。

AMIを作成しています。Ubuntu 20.04(Focal Fossa)、デフォルトのPythonバージョンを3.6に設定したいと思います。

正しい pip で Python 3.6 をインストールした後、次のように選択肢を設定しました。

update-alternatives --install \
  /usr/bin/python3 \
  python3 \
  /usr/bin/python3.6 \
  10

しかし、私は彼に関連する多くの問題に直面しました。CPythonpython3-apt(apt_pkg、apt_inst)などのパッケージと、netifacesまだ見つからない他のパッケージがあるはずです。

両方とも配置され、/usr/lib/python3/dist-packagesパッケージ名は次の形式です。

{name}.cpython-38-x86_64-linux-gnu.so

Ubuntu 20.04のデフォルトのPythonバージョンはPython 3.8なので、これは意味があります。

Google 検索の即時解決策は、次のように名前をリンクすることです。

ln -s {name}.cpython-38-x86_64-linux-gnu.so {name}.so

つまり:

ln -s apt_pkg.cpython-38-x86_64-linux-gnu.so apt_pkg.so
ln -s netifaces.cpython-38-x86_64-linux-gnu.so netifaces.so

デフォルトのPythonバージョンが3.6()のときに関連パッケージを再インストールしてみましたが、apt install --reinstall python3-apt成功しなかったため、このリンクされたファイルソリューションは*.so拡張性がありません!

Python 3.6をシステムのデフォルトのCPythonパッケージと連携させる方法はありますか?

答え1

あなたが見つけたように、システムは次のように依存します。システムPythonのバージョンは期待どおりです。 Python 3.6を含むシステムが本当に必要な場合は、最善の方法はPython 3.6を使用する(理想的にはまだサポートされている)バージョンを見つけることです。あなたの場合はUbuntu 18.04です。

AMI で実行されているプログラムに Python 3.6 を提供する場合は、システム Python を置き換えるのではなく、仮想環境の使用を検討してください。ピエンブ良い出発点です。

答え2

クラウド内のすべてのコンピュータの環境を、まるで近くの物理コンピュータであるかのように管理します。 Ubuntu 20.x を使用していて、既定のインストール済み Python バージョンが 3.8 であるが、Python v3.6 が必要な場合は、必要に応じて仮想環境をインストールします。これを行うために使用できますpyenv。現在行っていることは、デフォルトのPythonインストールをゆっくり停止することです。これは、お使いのコンピュータ上の多数のパッケージ(クラウドベースであるかどうかにかかわらず)に悪影響を及ぼします。

追加する地図時間興味があれば、私はPython環境の仮想化について書いたことがあります(特にリソースpyenv)。

関連情報