概要
pyenvによるPython環境を構築する必要が有ったので実施したが、ライブラリのインストールでかなりはまったので、記録を残しておきます
環境
Ubuntu 18.04 on WSL2
pyenv 2.4.10
構築手順
- ここではWSL2での操作手順となります。Mac、Windows OS 上へのインストールの場合は公式サイト をご確認ください
pyenv インストール
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
Pyenv のシェル環境を設定
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc
pyenvがインストールされたことを確認
pyenv --version
インストール可能なPythonバージョンリストを確認
pyenv install -l
- ※ここでは、新し目で安定していることを期待して3.12.5 をインストールする事とします
Pythonをインストール
pyenv install 3.12.5
エラーが発生
Downloading Python-3.12.5.tar.xz...
-> https://www.python.org/ftp/python/3.12.5/Python-3.12.5.tar.xz
Installing Python-3.12.5...
BUILD FAILED (Ubuntu 22.04 using python-build 2.4.10)
Inspect or clean up the working tree at /tmp/python-build.20240817110835.3833
Results logged to /tmp/python-build.20240817110835.3833.log
Last 10 log lines:
File "/tmp/python-build.20240817110835.3833/Python-3.12.5/Lib/ensurepip/__init__.py", line 200, in _bootstrap
return _run_pip([*args, *_PACKAGE_NAMES], additional_paths)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/python-build.20240817110835.3833/Python-3.12.5/Lib/ensurepip/__init__.py", line 101, in _run_pip
return subprocess.run(cmd, check=True).returncode
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/python-build.20240817110835.3833/Python-3.12.5/Lib/subprocess.py", line 571, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/tmp/python-build.20240817110835.3833/Python-3.12.5/python', '-W', 'ignore::DeprecationWarning', '-c', '\nimport runpy\nimport sys\nsys.path = [\'/tmp/tmp59cuesi2/pip-24.2-py3-none-any.whl\'] + sys.path\nsys.argv[1:] = [\'install\', \'--no-cache-dir\', \'--no-index\', \'--find-links\', \'/tmp/tmp59cuesi2\', \'--root\', \'/\', \'--upgrade\', \'pip\']\nrunpy.run_module("pip", run_name="__main__", alter_sys=True)\n']' returned non-zero exit status 1.
make: *** [Makefile:2031: install] Error 1
- Copilotに質問した所以下コマンドで解決するかもと言われて実施しましたが、結果変わらず
sudo apt-get update
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev python-openssl
- ログを確認した所、
build-essential, libffi-dev, libbz2-dev
など諸々ライブラリが不足しているようでした - 何回もトライしライブラリが不足していると言われ続け、疲れましたが結局以下コマンドでライブラリを追加する事でエラーすることなく、Pythonインストールが正常に成功しました
不足ライブラリのインストール
sudo apt-get update
sudo apt install build-essential
sudo apt-get install libffi-dev
sudo apt-get install libbz2-dev
sudo apt-get install libncurses5-dev
sudo apt-get install libreadline-dev
sudo apt-get install sqlite3 libsqlite3-dev
sudo apt-get install liblzma-dev
再インストール
- ここではアンインストールしてからインストールしています
pyenv uninstall 3.12.5
pyenv install 3.12.5
globalで使用できるようにする
pyenv global 3.12.5
Pythonインストール結果を確認
python --version
最後に
久しぶりにPython環境構築をしましたが、ライブラリ依存エラーで時間を費やされました。
ここら辺をうまくまとめてインストールしてくれるツールが有れば嬉しいと思いました。
公式サイト以外で同じようなエラーを解決したサイトが有り助かりました。有難うございます。
参考サイト
pyenv - GitHub
Ubuntuにpyenvをインストールする
pyenvを使ってpythonをインストールするときに出たエラー達