Python setup.py  パッケージ化

Python学習【365日チャレンジ!】118日目のマスターU(@Udemy11)です。

久しぶりに通帳記入にいってみると、少し前に特別定額給付金が振り込まれていました。

マイナンバーカードは取得していたので、オンラインで申請していたのですが、申請開始から少し時間を置いての申請だったので、結構遅くなるんだろうな〜と思っていたところ、以外に早く入金されていてびっくりしました。

といっても、特別定額給付金のオンライン申請を中止にするところが出てきたり、郵送申請が本格化しているので、すでに市区町村の申請窓口はてんやわんや状態であることは間違いなく、これから申請する人は、振り込みが7月ごろになるのではないでしょうか?

オンライン申請なのに、申請後は申請内容と住民台帳の称号を人の目で確認するってところに目が点になりましたが。。。

国がシステム統一して市区町村に提供しないと、今ある手続きのオンライン化なんて一生できないような気もします。

それでは、今日もPython学習をはじめましょう!

昨日の復習

昨日は、MVCモデルで完成した対話アプリJarvisに、対話を追加しました。

おすすめするスポーツが好きかどうかを聞いたときに、YesNo以外がタイプされたときに、YesNoで答えるように伝えたあと、再び同じ質問をするようにしました。

テンプレートの文言ファイルを追加して、robot.pyrecommend_sportメソッドのコードを少し変更し、console.pyに新しくget_other_templateメソッドを追加しました。

詳しい変更点は昨日の記事をごらんください。

今日は、作成したJarvisをパッケージ化して書き出してみます。

setup.py

setup.pyを作って、パッケージを配布する方法は、上記のエントリーで紹介しましたが、このときはどんな時に使うのか、いまいち理解できていなかった感じがします。

今回作成した対話アプリJarvisのパッケージを作って、公開したいと思います。

そのためにまず、setup.pyを作りますが、普段から利用しているPythonistaでは、StaShで実行しようとしてもエラーが起こって使えません。

[jarvis]$ python3 setup.py build
Error: 'ShIO' object has no attribute 'errors'
[jarvis]$

なので、今回もPycharmでパッケージを作ることにします。

setup.pyは、普通にPythonファイルを作成して、コードを書いてもいいのですが、Pycharmなら簡単に作ることができます。

まず、メニューの【Tools】 → 【Create setup.py】を選んで必要事項を入力します。

Python Pycharm setup.py

作成されたsetup.pyそのままでパッケージを作ると、main.pytemplatesフォルダのテキストファイルが含まれないので、次の2行を追加します。

Python Pycharm setup.py

この2行を追加することで作成されるパッケージにmain.pytemplatesフォルダを含めることができます。

引数のpackage_dataは、Pythonファイル以外のファイルを含める時に使い、パッケージ内のフォルダ名とリストで*(アスタリスク)ですべてのテキストファイルのパスを指定しています。

引数py_moduleは、ルートフォルダ内にあるmain.pyを指定しています。

sdistで実行

sdistは、source distributionの略で、パッケージをソースを配布するためのtar.gzファイルにまとめてくれます。

Python Pycharm setup.py

メニューの【Tools】 → 【Run setup.py Task…】をクリックして、sdistをダブルクリックします。

Python Pycharm setup.py

オプションを入力する画面になりますが、何も入力せずに【OK】をクリックします。

Python Pycharm setup.py

これで配布用のパッケージ本体dist/jarvis-1.0.0.tar.gz と、メタデータディレクトリjarvis.egg-infoが作成されます。

配布するのはtar.gz

あとは、distフォルダ内にあるjarvis-1.0.0.tar.gzを配布するためのクラウドストレージに保存して、誰でもダウンロード可能にすれば公開完了です。

下記のリンクから、作成した対話アプリJarvisのソースをダウンロード可能なので、必要かどうかは別として、ご自由にお使いださい。
※念のため、最初にウイルスチェックをしてください。

1からコードを書く

Python学習365日チャレンジを始める前からPythonやPHPは触ったことがあったのですが、やりたいことがあって、ネット上で公開されているソースを活用し、カスタマイズして使っていた程度でした。

なので、コードを見て実際に動かして初めて動作がわかるだけで、こんな動作をさせるにはどのライブラリやメソッドを使えばいいなんてことはわかっていませんでした。

なんとなく、

このサンプルのここを変更すれば、こうなるんじゃない?

と考えて、コードを変更しながら、一つずつ実行して結果を確認しているような感じでした。

このやり方で、必要になった時に、必要な部分だけ理解して、必要なコードを作ればいいのですが、やはりWeb上のサンプルコードの検索からカスタマイズまで、めっちゃ時間がかかるんですよね。

しっかりとPythonを学習して、1からコードを書けるようになれば、自分でやりたいことができるうえ、他の人にもコードを提供できるるようになります。

これからの時代、生き残るためにはプログラミングのスキルは必須です。

もちろん1からコードを書けるようになるには時間がかかりますが、Pythonを使えるようになれば、あなたの価値が上がることは間違いありません。

Python学習の第一歩として、私も学習している酒井さんの講座を受講してみてはどうでしょう?

Udemy講師 酒井さん プログラミング Python

自分で書いたコードがきちんと動くのを体験すると、Pythonが楽しくなってきますよ!

それでは、明日もGood Python!