1
1

pyenvによるPythonインストール手順

Posted at

概要

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

image.png

インストール可能なPythonバージョンリストを確認

pyenv install -l

image.png
(後略)

  • ※ここでは、新し目で安定していることを期待して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

image.png

globalで使用できるようにする

pyenv global 3.12.5

Pythonインストール結果を確認

python --version
  • 3.12.5がインストールされたことを確認
    image.png

最後に

久しぶりにPython環境構築をしましたが、ライブラリ依存エラーで時間を費やされました。
ここら辺をうまくまとめてインストールしてくれるツールが有れば嬉しいと思いました。
公式サイト以外で同じようなエラーを解決したサイトが有り助かりました。有難うございます。

参考サイト

pyenv - GitHub
Ubuntuにpyenvをインストールする
pyenvを使ってpythonをインストールするときに出たエラー達

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1