imple is Best

Python 3.7.3 をビルドする

この記事は投稿から 1 年以上経過しています。
最新の情報は各種公式ドキュメント等をご覧下さい。

Feren OS に Python 3.7.3 を自分でビルドしてインストールしたときのメモです。

python3: error while loading shared libraries: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory の対処法は一番下に書いてあります。

Feren OS は Mint Linux の派生ディストリビューションなので、Debian系はここに書いてある通りすればいけると思います。(多分)

ソースコードの入手

公式サイトにコードが転がっている のでそこから落としてきます。

2019/04/27 現在の最新版は Python 3.7.3 です。

落としてきたら tar xvf で解凍しておきます。

以下はすべて Python 3.7.3 を落とした場合のターミナルの様子です。

$ wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
$ tar xvf Python-3.7.3.tgz
$ cd Python-3.7.3

ビルド

まずはビルドに必要なツールをインストールしておきます。

$ sudo apt update
$ sudo apt install build-essential libbz2-dev libdb-dev \
  libreadline-dev libffi-dev libgdbm-dev liblzma-dev \
  libncursesw5-dev libsqlite3-dev libssl-dev \
  zlib1g-dev uuid-dev tk-dev

{% noindent "参考: Ubuntu環境のPython - python.jp" "https://www.python.jp/install/ubuntu/index.html" %}

続いて make を利用してビルドします。FFmpeg みたいに色々オプションがあるわけではないです。なんか --enable-optimizations をつけるといい感じになるという話を聞いたのでつけておきます。

$ ./configure --enable-optimizations --enable-shared
$ make -j4 && sudo make altinstall

すでに Python が入っている場合、パスの通し方によっては python3 コマンドが 3.7 にあがってしまうので、altinstall を利用することが推奨されています。

Intel Core i5-4200M、RAM 8GB で SSD な ThinkPad E440 でビルドした場合、30分ほどかかりました、参考までに。

libpython3.7m.so.1.0 がないと怒られる

これで無事インストールできたと思って python 3.7 を実行すると python3: error while loading shared libraries: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory が出ました。いろいろ調べてみると libpython3.7m.so.1.0 を見つけられないから怒られるらしいので、場所を教えてやります。

僕の場合は以下のようにパスを登録し、そのパス先に落としてきた Python-3.7.3 に入っていた libpython3.7m.so.1.0 をコピーしたらうまくいきました。

$ sudo mkdir /opt/python373/lib
$ sudo vim /etc/ld.so.conf.d/libpython.conf # /opt/python373/lib の一行を追加
$ sudo ldconfig -v

これで無事 Python 3.7.3 がインストールできた、やったね。

$ python3.7 --version
Python 3.7.3
$ pip3.7 --version
pip 19.0.3 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)