エッジで使う端末用にwheelを作ったときのメモ


背景

  • エッジ端末でPython3を使って色々する
  • armv7とかaarch64向けのwheelがPyPIにない(事が多い

とりあえずスクリプトにしてみる

make_wheel_from_tarball.sh
#!/bin/bash
# coding: utf-8

for pathfile in ./*.tar.gz ; do
    tar zxvf $pathfile

    # python3 ${pathfile%.*}/setup.py bdist_wheel

    dir=${pathfile%.*.*}/
    cd $dir
    python3 setup.py bdist_wheel

    whl=`find ./ -iname *.whl`
    mv $whl ../

    cd ../
    rm $pathfile
    rm -r $dir
done

実行してtarballからwheelができることを確認。
なぜかエラーになったやつの対処をググる。

invalid command 'bdist_wheel'のエラーが出る時

解凍したtarballのsetup.pyを1行変更すればOK

setup.py
#from distutils.core import setup
from setuptools import setup

あとがき

  • エッジ端末で使う場合は複数端末に同じライブラリを入れるので、多少面倒でもwheelを作っておいたほうが展開が楽
    • pipで毎回ビルド走るより、wheel作って/tmpとかに展開してpip3 -r requirements.txtするほうが早い
  • 基本tarballだから決め打ちにしたけど、zipも判定に入れたほうがいいかも
  • どうせならsetup.pyのパッチもスクリプト化したほうg(ry