blog.mtb-production.info

よくある経歴のPythonエンジニア

wheelってどういう時に使うの?

wheelってどういう時に使うんですかね。

なんとなく知っていること

とりあえず、なんとなく知ってることは、

  • wheelは、Pythonパッケージのフォーマット
  • wheelは、zip形式で圧縮される
  • Pythonパッケージのフォーマットは前はeggとかsdistとかあった
  • wheelは後方互換性をもってる
  • wheelをあつかうためのPythonライブラリがある

とかです。

だから、今のところPythonで簡単なコード書くだけだと困る事があんまりないんですが、pip周りの話とか構成管理の話をしてるとwheelの話がちらほら出てきて、それがよくわからないの嫌だなあ。と思ってます。

よくわかんないけど、動いてるからOK。みたいなのは、個人的に気持ち悪いので、何が起きてるのか知っておきたい気持ち。

何を調べるの?

で、何を調べたらいいんだろう。と考えていたら、aodagさんが、PyConJPでパッケージの話をしてたのを思い出しました。

と言うわけで、スライドを探します。

『aodag スライド パッケージ』で、検索。。。

Pythonとパッケージングと私

パッケージングを支える技術 pyconjp2016

出ました。とりあえず2つ読みました。 他にもあったけど力尽きました。

スライド読んでわかったこと

とりあえずeggは幻だったことがわかった。(わからない)

あと2016年の15枚目のスライドに書いてあった事がなんか重要っぽいけどわからなかった。

2016年の21枚目からwheelの話だった。(興味ある人はどうぞ)

  • wheelはバイナリ形式
  • (多分)C拡張のモジュールのために作られた

どういう時に使うというより、C拡張モジュールを含む時はバイナリ形式にしたい理由があって、その時にwheelだと便利なのかな、くらいの理解になった。(あってるかはわからない)

新しい疑問

読んでる中で他の疑問がモリモリでた。

  • ABIってなんだろ
  • ucs-4ビルドってなんだろ
  • pymallocってなんだろ
  • manylinux1とは、
  • pyvenvとは?
  • setuptoolsってわかってないようでわかってない
  • wheelhouseとは?
  • flitとは?
  • ensurpipはわからない

よし。わからん。 1つずつ調べていきたい。

おわり

いろいろ調べたけど、wheelとsdistでパッケージ作ってみた方がわかる気がするな。という感触。

あとでやってみよう。

そういえば、pypaにパッケージアップしたことがなかった。アップロードしてみよう。