CentOS7 に pyenv で Python 3.7.x 系をインストールする
以前に CentOS 7.5 に pyenv をインストールし、任意バージョンの Python を利用するというメモを書きましたが、CentOS7 上で pyenv を使って Python 3.7.x 系をインストールしようとするとエラーになってしまいます。 事前に libffi-devel
をインストールしておくことで 3.7.x 系もインストール出来るようになりましたので、改めて手順をメモしておきます。
libffi-devel が無い場合のエラー
libffi-devel
が不足している状態で pyenv install 3.7.2
のように実行すると、以下のようなエラーになりました。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 | ModuleNotFoundError: No module named '_ctypes'
make: *** [install] エラー 1
BUILD FAILED (CentOS Linux 7 using python-build 20180424)
Inspect or clean up the working tree at /tmp/python-build.20190403154806.15081
Results logged to /tmp/python-build.20190403154806.15081.log
Last 10 log lines:
File "/tmp/tmp2doacv3c/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/cli/main_parser.py", line 12, in <module>
File "/tmp/tmp2doacv3c/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/commands/__init__.py", line 6, in <module>
File "/tmp/tmp2doacv3c/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/commands/completion.py", line 6, in <module>
File "/tmp/tmp2doacv3c/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/cli/base_command.py", line 20, in <module>
File "/tmp/tmp2doacv3c/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/download.py", line 37, in <module>
File "/tmp/tmp2doacv3c/pip-19.0.3-py2.py3-none-any.whl/pip/_internal/utils/glibc.py", line 3, in <module>
File "/tmp/python-build.20190403154806.15081/Python-3.7.3/Lib/ctypes/__init__.py", line 7, in <module>
from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'
make: *** [install] エラー 1
|
pyenv 環境構築手順 (libffi-devel あり)
以下を実行し、pyenv 環境を構築していきます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 | yum -y install \
bzip2 \
bzip2-devel \
gcc \
git \
libffi-devel \
openssl \
openssl-devel \
readline \
readline-devel \
sqlite \
sqlite-devel \
zlib-devel
curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
cat << 'EOS' >> ~/.bashrc
export PATH="/root/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
EOS
source ~/.bashrc
|
Python 3.7.x 系のインストール
pyenv で Python 3.7.x 系をインストールしてみます。 今回は 3.7.3 をインストールしてみました。
例によって多少の時間はかかりますが、無事にインストールが完了しました。 後は必要に応じて global な Python のバージョンを調整する等、必要なアクションを実行していきます。
| pyenv global 3.7.3
pyenv rehash
|