LoginSignup
35
29

More than 5 years have passed since last update.

Ubuntu18.04においてpyenvを用いたpythonインストール時に生じたBUILD FAILEDのエラーとその対処

Last updated at Posted at 2018-08-22

変更記録

2018.8.22 設定がすべて完了するまでのプロセスを記述するためpyenvのシェル変数へのPATHの通し方を追記

概要

  1. Ubuntu 18.04でpyenvを使ってpython3.6.6をインストールしようとしたところエラーが発生した
  2. エラーメッセージにzlibが無いとのことだったのでこれをsudo apt-get install zlib1g-devでインストールした
  3. Python3.6.6を無事にインストールできた

環境

Ubuntu 18.04.1 LTS

何をしたか

「PyenvによるPython3.x環境構築(CentOS, Ubuntu)」
https://qiita.com/akito1986/items/be5dcd1a502aaf22010b
の記事を参考に、以下のコマンドを実行(参考記事の環境にUbuntu14.04と書いてあったのを気にすればよかったとあとで思った... )
途中でエラーが発生したため解決した。以下で手順を説明

必要なファイルのインストール

(結論から言うとこれに足りないライブラリがあった)

$ sudo apt-get install git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev

pyenvをgithubからインストール

$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv

pyenvのPathをbashrcを介して通す

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ source ~/.bashrc

visudoでsudo時にも同じPathを使用するよう設定

詳細はsudo時にPATHを引き継ぐ方法
を参照すると良い

sudo visudo

を実行するとnanoで権限に関する重要なsudoresファイルを編集するモードになる。この中で以下のように書き換えた。

#Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin
Defaults    env_keep += "PATH"
Defaults    env_keep += "PYENV_ROOT"

#はコメントアウトを表す。何もしていなければ1行目に該当する部分がコメントアウトされずに存在しているのでこれをコメントアウトし2・3行目を追加した。
ctrl+Oで保存、ctrl+Xで終了。(nanoでの操作に慣れていないためググった)

pythonインストールを試みる

sudo pyenv install 3.6.6

エラー発生

$ sudo pyenv install 3.6.6
Downloading Python-3.6.6.tar.xz...
-> https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xz
Installing Python-3.6.6...

BUILD FAILED (Ubuntu 18.04 using python-build 1.2.7-1-g71902168)

Inspect or clean up the working tree at /tmp/python-build.20180822214932.20950
Results logged to /tmp/python-build.20180822214932.20950.log

Last 10 log lines:
    sys.exit(ensurepip._main())
  File "/tmp/python-build.20180822214932.20950/Python-3.6.6/Lib/ensurepip/__init__.py", line 204, in _main
    default_pip=args.default_pip,
  File "/tmp/python-build.20180822214932.20950/Python-3.6.6/Lib/ensurepip/__init__.py", line 117, in _bootstrap
    return _run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
  File "/tmp/python-build.20180822214932.20950/Python-3.6.6/Lib/ensurepip/__init__.py", line 27, in _run_pip
    import pip._internal
zipimport.ZipImportError: can't decompress data; zlib not available
Makefile:1103: recipe for target 'install' failed
make: *** [install] Error 1

エラーメッセージ中に

zipimport.ZipImportError: can't decompress data; zlib not available
Makefile:1103: recipe for target 'install' failed

とあったのでこれをインストール

sudo apt-get install zlib1g-dev

そして再度

sudo pyenv install 3.6.6

にて無事にインストールができた。
あとはpyenvの使い方に従ってglobalで3.6.6が効くようにしたり自分好みに設定すると良い。

35
29
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
35
29