g00ceyの技術ブログ

pyenvインストール時のエラー(phpenv rbenv)

目次

よくpyenvを使ってpythonをインストールする際にあれがないこれがないとエラーが出るのですが、都度都度対応していることが多いので、記載しておきます。

そもそもインストールしているもの

anyenvではビルドがあるので、以下をインストール。

  • gcc
  • make

エラー内容

pyenv install 3.7.3

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

zlib-devがない入れましょう。

sudo apt install zlib1g-dev
pyenv install 3.7.3

Last 10 log lines:
  File "/tmp/tmp091zhsko/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/commands/__init__.py", line 6, in <module>
  File "/tmp/tmp091zhsko/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/commands/completion.py", line 6, in <module>
  File "/tmp/tmp091zhsko/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/cli/base_command.py", line 20, in <module>
  File "/tmp/tmp091zhsko/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/download.py", line 37, in <module>
  File "/tmp/tmp091zhsko/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/utils/glibc.py", line 3, in <module>
  File "/tmp/python-build.20190523084010.28195/Python-3.7.3/Lib/ctypes/__init__.py", line 7, in <module>
    from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'
Makefile:1130: recipe for target 'install' failed
make: *** [install] Error 1
sudo apt install libffi-dev

そして、次は警告

pyenv install 3.7.3

WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
WARNING: The Python sqlite3 extension was not compiled. Missing the SQLite3 lib?
sudo apt install libbz2-dev libreadline-dev libsqlite3-dev
pyenv install 3.7.3
Installing Python-3.7.3...
Installed Python-3.7.3 to /home/luna/.anyenv/envs/pyenv/versions/3.7.3

つまり

  • libffi-dev
  • libbz2-dev
  • libreadline-dev
  • libsqlite3-dev

dockerでそろえるならば、Dockerfileに書くかやbaseイメージにあるからいいのだけど。(後でSBC用のAnsibleの中に突っ込んでおこう)

ついでにphpenvも

  • libxml2-dev
  • bison
  • curl
  • libcurl4-openssl-dev
  • libzip-dev
  • libjpeg-dev
  • libpng-dev
  • re2c
  • libxml2-dev
  • libssl-dev
  • libtidy-dev
  • libxslt-dev
  • libmcrypt-dev
  • autoconf
  • automake

ついでに rubyも

よく記事を見ると上でパッケージ入れているからそのままでもいいっぽい。


Share

comments powered by Disqus