Ubuntu 24.04 環境でpyenvを使用してpython環境をinstallするときのエラー対処一覧メモ.
1. インストール時にpythonのビルドスクリプトでエラー
ホスト環境に 'python3-venv' が必要なようです.
sudo apt install python3-venv
以下に情報がありました.
stackoverflow.com
2. python環境のビルドエラー/警告の対処
(1) ModuleNotFoundError: No module named '_ssl'
ModuleNotFoundError: No module named '_ssl' ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?
'libssl-dev' をインストールします.
これが無いとビルドエラーでインストール失敗するみたいです
(2) ModuleNotFoundError: No module named '_bz2'
ModuleNotFoundError: No module named '_bz2' WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
'libbz2-dev' をインストールします.
(3) ModuleNotFoundError: No module named '_curses'
ModuleNotFoundError: No module named '_curses' WARNING: The Python curses extension was not compiled. Missing the ncurses lib?
'libncurses-dev' をインストールします.
(4) ModuleNotFoundError: No module named 'readline'
ModuleNotFoundError: No module named 'readline' WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
libreadline-dev
をインストールします.
(5) ModuleNotFoundError: No module named '_tkinter'
ModuleNotFoundError: No module named '_tkinter' WARNING: The Python tkinter extension was not compiled and GUI subsystem has been detected. Missing the Tk toolkit?
tk-dev (tk8.6-dev)
をインストールします.
(6) ModuleNotFoundError: No module named '_lzma'
ModuleNotFoundError: No module named '_lzma' WARNING: The Python lzma extension was not compiled. Missing the lzma lib?
liblzma-dev
をインストールします.
2. 今回エラーは出ていないけど、おそらく必要なライブラリ
今回エラーは出てませんでしたが、他のパッケージとともにインストール済みで必要と思われるものです.
(1) zlib
gzip圧縮のライブラリ.
おそらくdevパッケージがない場合エラーか警告となるはず・・。
zlib1g-dev
をインストールします.
(2) sqlite3
軽量のファイルDBの開発パッケージ.
これも必須だった気がします.
libsqlite3-dev
をインストールします.
(3) libffi
debugpy モジュールで、ブレークポイントを張るような環境の場合、ffiライブラリをリンクさせておきます.
このライブラリがリンクされていないと、_ctype のが参照できず、インストールしたpython環境でブレークポイントを張ったデバッグができません.
libffi-dev
をインストールします.
詳しいことはこちらに・・ zv-louis.hatenablog.com
3 .まとめ
ということで、下記のコマンドで一括インストールすればすんなりといくはず.
sudo apt install python3-venv libssl-dev libncurses-dev libreadline-dev tk-dev libbz2-dev liblzma-dev libffi-dev zlib1g-dev libsqlite3-dev