初めに
Pythonのパッケージ形式の一つとして、wheel
があります。
Python3系だけでなくPython2系もサポートしてC拡張を含んでいないプロジェクトをwheel
化したものを、universal wheelといいます。
遭遇した問題
universal wheelについて、PyPIのドキュメントにsetup.cfg
でオプションを指定してuniversal wheelを作成する方法があるものの、コマンドライン引数でオプションを指定する方法が明記されていませんでした。
ここで少しハマりましたが冷静に考えてオプションを指定すればいいだけなので、下記を実行することでPATH/TO/PRJ_ROOT/dist/
下にuniversal wheelをpackage-x.y.z-py2.py3-none-any.whl
のファイル名で作成することができました。
PATH/TO/PRJ_ROOT>python setup.py bdist_wheel --universal
また、下記を実行すれば、.zip
(.tar.gz
ではなく)も同時にPATH/TO/PRJ_ROOT/dist/
直下に作成することができます。
PATH/TO/PRJ_ROOT>python setup.py sdist --formats=zip bdist_wheel --universal
あとがき
もうPython2系なんてほとんどのパッケージでサポートされていないので、これが役に立つ期間もあと少しで終わるでしょう。