情報系大学生のためのメモ

情報系大学生のためのメモ

情報系の大学生活で役に立ちそうなことを共有します

Ubuntu20.04に任意のPython3をインストール(公式サイトからダウンロード)(2020/05/01有効)

(この記事は,Ubuntu16.04用のものをUbuntu20.04でも試して少しアップデートした記事です) Ubuntu16.04では,デフォルトでPythonが搭載されていますが,aptでupdateしてもPython3.5?くらいまでしか反映されません. そこで,Ubuntu16.04上で,最新のPythonを使う方法を紹介します. Ubuntu20.04,Ubuntu19.10でも動作確認済み.

必要なツールのダウンロード

$ 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をダウンロードする

www.python.org

f:id:Xtuyo:20190719174338p:plain

Gzipped source tarballの項目から.tgzファイルのダウンロードする

f:id:Xtuyo:20190719175356p:plain

解凍とビルド

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

上記のツールをインストールすると解決できる