Ubuntu20.04に任意のPython3をインストール(公式サイトからダウンロード)(2020/05/01有効)
(この記事は,Ubuntu16.04用のものをUbuntu20.04でも試して少しアップデートした記事です) Ubuntu16.04では,デフォルトでPythonが搭載されていますが,aptでupdateしてもPython3.5?くらいまでしか反映されません. そこで,Ubuntu16.04上で,最新のPythonを使う方法を紹介します. Ubuntu20.04,Ubuntu19.10でも動作確認済み.
- 必要なツールのダウンロード
- Python公式から最新のPythonのダウンロード
- 解凍とビルド
- エラー:ModuleNotFoundError: No module named '_ctypes'について
必要なツールのダウンロード
$ sudo apt update
$ sudo apt install build-essential
$ sudo apt install libbz2-dev
$ sudo apt install libdb-dev
$ sudo apt install libreadline-dev
$ sudo apt install libffi-dev
$ sudo apt install libgdbm-dev
$ sudo apt install liblzma-dev
$ sudo apt install libncursesw5-dev
$ sudo apt install libsqlite3-dev
$ sudo apt install libssl-dev
$ sudo apt install zlib1g-dev
$ sudo apt install uuid-dev
$ sudo apt install tk-dev
Python公式から最新のPythonのダウンロード
下のPython公式サイトから目的のPythonをダウンロードする
Gzipped source tarballの項目から.tgzファイルのダウンロードする
解凍とビルド
tarコマンドで解凍
$ tar xzf Python-任意のバージョン.tgz
ビルドは以下の通り
$ cd Python-任意のバージョン
$ ./configure --enable-shared
$ make
$ sudo make install
$ sudo sh -c "echo '/usr/local/lib' > /etc/ld.so.conf.d/custom_python3.conf"
$ sudo ldconfig
エラー:ModuleNotFoundError: No module named '_ctypes'について
$ pyenv install 3.7.0
Installing Python-3.7.0...
BUILD FAILED (Ubuntu 18.04 using python-build 1.2.3-79-gc057a80c)
Inspect or clean up the working tree at /tmp/python-build.20180708190520.14846
Results logged to /tmp/python-build.20180708190520.14846.log
Last 10 log lines:
File "/tmp/tmppm_d6i5e/pip-10.0.1-py2.py3-none-any.whl/pip/internal/init.py", line 42, in
File "/tmp/tmppm_d6i5e/pip-10.0.1-py2.py3-none-any.whl/pip/ internal/cmdoptions.py", line 16, in
File "/tmp/tmppm_d6i5e/pip-10.0.1-py2.py3-none-any.whl/pip/internal/index.py", line 25, in
File "/tmp/tmppm_d6i5e/pip-10.0.1-py2.py3-none-any.whl/pip/ internal/download.py", line 39, in
File "/tmp/tmppm_d6i5e/pip-10.0.1-py2.py3-none-any.whl/pip/internal/utils/glibc.py", line 3, in
File "/tmp/python-build.20180708190520.14846/Python-3.7.0/Lib/ctypes/init.py", line 7, in
from ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'
Makefile:1122: recipe for target 'install' failed
make: *** [install] Error 1
エラー:ModuleNotFoundError: No module named '_ctypes'が発生した場合
$ sudo apt install libffi-dev
上記のツールをインストールすると解決できる