Edited at

pyenvで3.7系のインストールエラー時の対処メモ(Ubuntu)


pyenv install 3.7.xでエラー(Ubuntu)

ModuleNotFoundError: No module named '_ctypes'

Makefile:1130: ターゲット 'install' のレシピで失敗しました
make: *** [install] エラー 1

と怒られる


対処法

ドキュメント

必要な環境が書いてあります.

まず言うとおりにインストールする. 

さきにaptをアップデートしておく。

$ sudo apt 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 git

ここで、コンピュータを再起動して、pyenv installを再度試みる

$ pyenv install 3.7.3

行けました!!

ちなみにOpenSSLで下記のように怒られる場合は、

ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

opensslをアップデートしてみましょう。  

$ sudo apt update && sudo apt upgrade openssl

それでも

ModuleNotFoundError: No module named '_ctypes'

とエラーになる場合でかつ、Homebrewを使っている場合、

上記でapt-get install したライブラリ群に関連する何かを

Homebrewでインストールしてしまっているのが原因の一つになります。

関連ありそうなものをuninstallしましょう。

$ brew uninstall <ライブラリ名>

全部uninstallする場合は下記で一発でいけます。

$ brew list | cat | xargs brew uninstall -f

もう一度、pyenv installを試みましょう