要旨
CentOS 6.x系でpyenvでPython 3.7異常をインストールしようとすると、エラーが起きてインストールできない場合の対応。
ちょっと危なっかしいので実際に行う時はテストサーバーなどで十分に検証してください。
事前確認
# yum install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel -y
# pyenv install -v 3.7.1
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?
原因と対策
OpenSSLのバージョンが1.0系だと起きるっぽい。yum でインストールしても 1.0系以上は入らないため、1.1.1をソースからデフォルトの場所以外にインストールするという手を使う。
/usr/local/openssl-1.1.1にインストール
OpenSSL 1.1.1のインストールと設定
# curl https://www.openssl.org/source/openssl-1.1.1.tar.gz -o /usr/local/src/openssl-1.1.1.tar.gz
# cd /usr/local/src/
# tar xvzf openssl-1.1.1.tar.gz
# cd openssl-1.1.1
# ./config --prefix=/usr/local/openssl-1.1.1 shared zlib
# make
# make install
/etc/ld.so.conf.d/にファイルを作成して、「/usr/local/openssl-1.1.1/lib/」と記述、反映
# vi /etc/ld.so.conf.d/openssl-1.1.1.conf
# ldconfig
確認
# /usr/local/openssl-1.1.1/bin/openssl ciphers -v TLSv1.3
TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=any Au=any Enc=AESGCM(256) Mac=AEAD
TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD
TLS_AES_128_GCM_SHA256 TLSv1.3 Kx=any Au=any Enc=AESGCM(128) Mac=AEAD
インストール
CONFIGURE_OPTSでconfigure時のオプションと同じ指定ができる
# CONFIGURE_OPTS="--with-openssl=/usr/local/openssl-1.1.1/" pyenv install -v 3.8.0
ついでに
ちょっとしたPythonの実行なら環境を整備しなくても
google colab notebook で実行できます。
https://colab.research.google.com/notebooks/welcome.ipynb?hl=ja
TA-Libのインストールまでできます。
!wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz
!tar -xzvf ta-lib-0.4.0-src.tar.gz
%cd ta-lib
!./configure --prefix=/usr
!make
!make install
!pip install Ta-Lib
import talib