1. ホーム 
  2. 備忘録 
  3. Python

パッケージ化

パッケージ化

モジュールをパッケージ化して配布するときは、まず setup.py を作成する必要がある

setup.py は PyCharm で簡単に作成できるツールが用意されているので手順を記載する

例として、下記画像のフォルダ構成でパッケージ化を行うとする

パッケージ化の画像

lesson_package/wrong ディレクトリには __init__.py が用意されていないことに留意しておく

このディレクトリは本来は用意すべきファイルが抜けていた時の説明用なので、実際には真似する必要はない

__init__.py はモジュール検索のためのマーカーのような役割を担っており、このファイルが存在するディレクトリにおいて、ディレクトリ名を名前とする名前空間の初期化を行ってくれる

このファイルの中に色々と記載することで、例えばモジュール間で名前空間の衝突が起きた際に、名前空間の問題を解決することもできる


画面上部の [Tools] -> [Create setup.py] から設定画面を出し、必要な項目を記入して OK を押す

パッケージ化の画像
パッケージ化の画像

これで自動的に setup.py ファイルが作成される

ツールを使用しない場合は自分で setup.py ファイルを書いて用意すれば問題ない

__init__.py ファイルがきちんと用意されているディレクトリは packages のリスト内にディレクトリ名が登録されているが、用意していなかったディレクトリは省かれている

パッケージ化するときは必ず __init__.py ファイルの用意を忘れないようにすること

パッケージ化の画像

setup.py の作成ができたら、次に sdist (source distribution の略)を行う必要がある

これは配布用のファイルにまとめる作業で、こちらも PyCharm のツールから行うことができる

画面上部の [Tools] -> [Run setup.py Task...] を選択し、出てきたウィンドウで sdist を選択して次に進む

パッケージ化の画像
パッケージ化の画像

次の画面で sdist 実行時にコマンドラインから渡すパラメタを設定できる

パラメタが必要でなければそのまま OK を押して進む

パッケージ化の画像

すると dist フォルダが作成され、中に tar ファイルが入っている

これを配布することで他者に共有することができる

なお、 PyCharm を使用しない場合はターミナル上で "python setup.py sdist" と実行することで同様にファイルを作ることができる

パッケージ化の画像