サイトからTGZをダウンロードして入れてみます。
yumのほうが管理しやすいけど、この方法に慣れてもらうのも一興かと。
もうね。
基本はPythonJapanさまの 「CentOS 環境のPython」 に書いてあるとおり!
https://www.python.org/downloads/
に行って、好きなリリースバージョンを選びます。
下の方にある「Files」から「Gzipped source tarball」で好きなところにダウンロードする。
ダウンロードしたもの(今回は3.7.3)を以下の要領で解凍します。
tar -zxvf Python-3.7.3.tgz
解凍できたら中に入って「configure → make → make install」をかける。
「–enable-optimizations」をつけると、configure途中でインストール先でのテストを実行して更に最適化してくれるらしい。
一説には1割2割は早くなるとか。(Pythonインストール時の最適化)
ただ項目が多いので結構時間がかかる。
cd Python-3.7.3/ ./configure --enable-optimizations --enable-shared make make install
configure では素直だったのに make install の途中で
ModuleNotFoundError: No module named '_ctypes'
とか言われたりします。
その時はあわてず
yum install libffi-devel
と入力してあげてください。
その後はもう一度 configure からやり直しです。
晴れて make install まで完了したら
sh -c "echo '/usr/local/lib' > /etc/ld.so.conf.d/custom_python3.conf"
を謎の呪文のごとく入れて完了~
喜び勇んで
python
と入力すると
Python 2.7.5 (default, Oct 30 2018, 23:45:53) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux2 Type "help", "copyright", "credits" or "license" for more information.
と、CentOSでデフォルトで入っているPython2が反応してくれます。
イラッとしながら /usr/bin/ 配下を覗くと
lrwxrwxrwx 1 root root 7 1月 21 17:32 python -> python2 lrwxrwxrwx 1 root root 9 1月 21 17:32 python2 -> python2.7 -rwxr-xr-x 1 root root 7216 10月 31 08:46 python2.7
先住の方がいらっしゃるので仕方がありません。
$ which python3.7 /usr/local/bin/python3.7 $ sudo ln -s /usr/local/bin/python3.7 /usr/bin/python3
として python3 だけでも3系で反応してほしいと願います。
python3 python3: error while loading shared libraries: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory
アレレ~?
いちおう他にも足りないものがないか確認しておきます。
$ ldd python3.7 linux-vdso.so.1 => (0x00007ffd21df3000) libpython3.7m.so.1.0 => not found libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f12d825f000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f12d8043000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f12d7e3f000) libutil.so.1 => /lib64/libutil.so.1 (0x00007f12d7c3c000) libm.so.6 => /lib64/libm.so.6 (0x00007f12d793a000) libc.so.6 => /lib64/libc.so.6 (0x00007f12d756d000) libfreebl3.so => /lib64/libfreebl3.so (0x00007f12d736a000) /lib64/ld-linux-x86-64.so.2 (0x00007f12d8496000)
こいつだけっぽいですね。
今回は「libpython3.7m.so.1.0」は /usr/local/lib にいました。
他の人と同じ場所、「/lib64/」にあるようにリンクを貼ります。
ln -s /usr/local/lib/libpython3.7m.so.1.0 /lib64/
で!
python3 Python 3.7.3 (default, Apr 9 2019, 15:07:31) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux Type "help", "copyright", "credits" or "license" for more information.
やれやれ~