[Python] 314 ライブラリlxmlはpipにて現状未対応[Apple Silicon][付録:cron用シェルスクリプト]

PyPIのpandasはようやくM1 Macに対応しましたが、関連するライブラリであるlxmlは2021年11月6日現在、未対応です。lxmlはpandas.read_htmlを使う際に必要になります。

そのためBeautifulSoupで取り込んだデータからの抽出ができません。pandasでhtmlを扱わないようコードを書き換える必要があります。なおminiforge環境ではcondaコマンドでインストール可能です。

今回はpyenvにminiforgeの仮想環境を作成し、そこにcondaでlxml等をインストールしました。crontabによりpythonスクリプトを定時実行する場合はシェルスクリプトファイルに以下のように記述しています。pyenvでなくても直接homeディレクトリにminiforgeをインストールして問題ないでしょう。

# pyenv内miniforge環境 miniforge3-4.10.1-5の場合
/Users/[ユーザー名]/.pyenv/versions/miniforge3-4.10.1-5/bin/python [pyファイルのフルパス]

# miniforge内仮想環境 mini_3.10.0の場合
/Users/[ユーザー名]/miniforge3/envs/mini_3.10.0/bin/python [pyファイルのフルパス]

どうもpandas関連の開発元はAppleに対してあまり協力的ではないようです。同様に配列を扱うライブラリであるnumpyは2021年6月には対応していて比較的親Appleです。

私自身、使い勝手の良いpandasに依存している状況は良くないと感じています。昨年11月、M1 Macを早々に手放した原因にもなりましたから。今後のことを考え、numpyをメインに据えて今使っているコードを書き換えられないか模索してみます。