Netlify の Pythonのバージョンが変わって焦る

ブログのビルドができなくて焦る

Netlify のビルドで以下のようなエラーが出てブログのビルドが出来なくなって いました。

CRITICAL: ImportError: No module named pathlib

ローカルではうまく生成できていたのにおかしいなと思い、ログを追っていくとPython のバージョンが見つからず、Python2が使われていました。

11:31:59 PM: /usr/local/bin/run-build-functions.sh: line 150: /opt/buildhome/python3.6.2/bin/activate: No such file or directory
11:31:59 PM: Error setting python version from runtime.txt
11:31:59 PM: Will use default version (2.7)

Netlify の ガイド は以下のようになっています。

PYTHON

We have Python versions 2.7.4, 3.4.0, 3.5.2, and 3.6.2 available. While 2.7.4 is the default, you can select one of those versions with a runtime.txt containing the version number (from those 4) that you prefer.

Netlify builds, deploys, and hosts your front end.

ガイドを確認しても、指定した Python 3.6.2 が提供されているはずです。

でも、ログを確認する限り Not Foundとなっています。

解決

怪しいので、 Deploy setting で /opt/buildhome 以下が確認できるよう ls -al /opt/buildhome/ を指定しました。

結果をログで確認すると、Python 3.6.2 は削除されたようで 3.6.4 がインストール されているのがわかります。勝手に消すなよ。

12:34:27 AM: drwxr-xr-x   1 buildbot nogroup 4096 Feb 23 15:34 .
12:34:27 AM: drwxr-xr-x   1 root     root    4096 Feb 23 15:33 ..
12:34:27 AM: -rw-r--r--   1 buildbot nogroup  200 Feb 22 17:30 .bash_profile
12:34:27 AM: -rw-r--r--   1 buildbot nogroup  118 Feb 22 17:30 .bashrc
12:34:27 AM: drwxr-xr-x   3 root     root    4096 Feb 22 17:33 .binrc
12:34:27 AM: drwxr-xr-x   3 buildbot nogroup 4096 Feb 22 17:33 .boot
12:34:27 AM: drwxrwxrwx   3 buildbot nogroup 4096 Feb 15 15:18 .cache
12:34:27 AM: drwxr-xr-x   9 buildbot nogroup 4096 Feb 22 17:34 .cask
12:34:27 AM: drwx------   1 buildbot nogroup 4096 Feb 22 17:32 .config
12:34:27 AM: drwxr-xr-x   3 buildbot nogroup 4096 Feb 22 17:31 .gem
12:34:27 AM: drwx------   2 buildbot nogroup 4096 Feb 22 17:32 .gnupg
12:34:27 AM: drwxr-xr-x   3 buildbot nogroup 4096 Feb 22 17:33 .lein
12:34:27 AM: drwxr-xr-x   3 buildbot nogroup 4096 Feb 22 17:33 .m2
12:34:27 AM: -rw-r--r--   1 buildbot nogroup  118 Feb 22 17:30 .mkshrc
12:34:27 AM: drwxr-xr-x 141 buildbot nogroup 4096 Feb 22 17:32 .npm
12:34:27 AM: drwxr-xr-x   1 buildbot nogroup 4096 Feb 22 17:32 .nvm
12:34:27 AM: drwxr-xr-x   1 buildbot nogroup 4096 Feb 23 15:34 .php
12:34:27 AM: -rw-r--r--   1 buildbot nogroup  317 Feb 22 17:32 .profile
12:34:27 AM: drwxr-xr-x   6 buildbot nogroup 4096 Feb 22 17:33 python2.7
12:34:27 AM: lrwxrwxrwx   1 buildbot nogroup   24 Feb 22 17:33 python2.7.5 -> /opt/buildhome/python2.7
12:34:27 AM: drwxr-xr-x   5 buildbot nogroup 4096 Feb 22 17:33 python3.4
12:34:27 AM: lrwxrwxrwx   1 buildbot nogroup   24 Feb 22 17:33 python3.4.0 -> /opt/buildhome/python3.4
12:34:27 AM: drwxr-xr-x   4 buildbot nogroup 4096 Feb 22 17:33 python3.5
12:34:27 AM: lrwxrwxrwx   1 buildbot nogroup   24 Feb 22 17:33 python3.5.5 -> /opt/buildhome/python3.5
12:34:27 AM: drwxr-xr-x   1 buildbot nogroup 4096 Feb 22 17:33 python3.6
12:34:27 AM: lrwxrwxrwx   1 buildbot nogroup   24 Feb 22 17:33 python3.6.4 -> /opt/buildhome/python3.6
12:34:27 AM: drwxr-xr-x  25 buildbot nogroup 4096 Feb 22 17:30 .rvm
12:34:27 AM: -rw-r--r--   1 buildbot nogroup   25 Feb 22 17:30 .rvmrc
12:34:27 AM: drwxr-xr-x   4 buildbot nogroup 4096 Feb 22 17:32 .yarn
12:34:27 AM: -rw-r--r--   1 buildbot nogroup  118 Feb 22 17:30 .zlogin
12:34:27 AM: -rw-r--r--   1 buildbot nogroup  118 Feb 22 17:30 .zshrc<Paste>

よく見ると、python3.6.4 は python3.6 にシンボリックリンクが切られているので、 詳細なバージョンを指定せずこちらを指定せよという意図なのでしょう。

runtime.txt に 3.6を指定して再 Deployして無事ビルドできました。