モジュールのインストール・プロジェクトの配布

pip install hoge
pip3 install hoge
    • とすればよい(こちら)
    • そうでなければ、配布用に固められたファイルを取ってきてインストールするが、配布方法の標準、Python モジュール配布ユーティリティdisutils が使ってあれば"foo-1.0.tar.gz や widget-0.9.7.zip "と言った名称・バージョンつきのアーカイブファイルとなっているので、それを入手して、解凍し、setup.pyファイルの置き場に移動して、
python setup.py install
    • とすればよい
  • さて、すでにdisutilsという標準とPyPI、setup.py、pipなど、ごちゃごちゃしてきたが、実はさらにごちゃごちゃする
  • それらについてこちらに解説記事がある
  • 自分なりにまとめると:
    • disutilsが標準
      • それが規定しているのがsetup.pyで
python setup.py install
    • これを使いやすく拡張したのがsetuptools(distributeという似たようなのがあるが、これは古いもの・吸収されたもの)
      • easy_installコマンドを使う
      • setuptoolsに対応した配布形式がPythonEggs
    • PyPIにあるパッケージなら、setuptools/easy_installの強化版であるpipを使える
    • さらに、もっとよいものを…的なものがWheelで、これはPythonEggsの改良・進化版らしい。setuptoolsを利用したsetup.pyを読み込んでよいことをしてくれる
  • 以上がインストールの話。配布はこれの逆
  • disutilsに準拠するのがよい
    • その場合の書き方の基本は以下の数行だけ(こちら)
from distutils.core import setup
setup(name='foo',
      version='1.0',
      py_modules=['foo'],
      )
    • これをsetuptoolsを使ってegg化するのの手順はこちらにあるように、それほど大変ではない。結局、egg化、wheel対応化、というのは、「配布形態」の取り決めみたいなもので、より複雑に諸指定するにあたってその指定方法を仕様化してそれに対応するツールができてきている、ということらしい