Pythonのsource distributionとeggとwheel
wheelとeggの違いが分からないので調べた。
それぞれの作り方
source distribution
python setup.py sdist
egg
setup.pyにfrom distutils.core import setup ではなく from setuptools import setupと書かないと生成されない 。
python setup.py bdist_egg
wheel
python setup.py bdist_wheel
それぞれの特徴
source distribution
Pythonのsource distributionとはsetup.py、ライブラリのソース(.py etc)、README.rst、PKG-INFOが含まれるtar.gzであり、各プラットフォームでrecompileされる。
egg
eggとはbuilt distributionの一種であり、setup.pyを含まず、バイトコード や バイナリモジュールのための.so/.dll/.dylib、.exe (py2exeを使った場合) が含まれるzipファイルのようなものである。unzipコマンドで開ける。JavaのJARみたいな感じ。
unpackせずに、そのままimportでき、source distributionのようにrecompileする必要もない。ただし、.pycを含むのでPythonのversionごとに異なるeggファイルが必要となる。
egg_path='./test.egg' sys.path.append(egg_path) import test
まとめ
PyPIに作ったライブラリを上げるときは、wheelを使うとよさそう。