2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【記事まとめ】自作Pythonモジュール公開のお役立ち情報

Posted at

はじめに

皆さんあけましておめでとうざいます。新年一発目の記事です。先日、PyPIに自作のモジュールを公開したので、その時に役立った情報や、知っておきたかった情報を初心者目線でまとめました。

公開する前に

公開手順に入る前に知っておきたい情報です。

PyPI

そもそも公開する場所がよく分かっていないと困ります。簡単に言えば、アカウントを作って、ここにモジュールを上げれば、皆もpipして使えるようになるという感じです。

セマンティックバージョニング

semantic(意味論)から分かるように、バージョンの数字には意味があるみたいです。筆者は雰囲気でつけてるもんだと思ってました

バージョンナンバーは、メジャー.マイナー.パッチ とし、バージョンを上げるには、

  1. APIの変更に互換性のない場合はメジャーバージョンを、
  2. 後方互換性があり機能性を追加した場合はマイナーバージョンを、
  3. 後方互換性を伴うバグ修正をした場合はパッチバージョンを上げます。
     プレリリースやビルドナンバーなどのラベルに関しては、メジャー.マイナー.パッチ の形式を拡張する形で利用することができます。

だそうです。これを知っていたほうが、この後の手順でバージョンをいじるときに、悩まなくて済みますね!

READMEの書き方

README.mdはパッケージの顔みたいなもんなので、書くときに意識することくらいは知っていたほうがいいと思います。

ここでは載ってませんが、サンプルプログラムとか、短くて済むならREADMEに書いちゃった方が、個人的には親切だと思います。

MITライセンス

自由度がとても高いライセンスです。個人でアップする分には、特にこだわりがなければ、これにしておいて問題ないと思われます。このくらいならAIでも書いてくれそうですが、以下の記事にサンプルが載っていたので紹介しておきます。

公開手順

GitHub

GitHubを使うので、アカウントを持っていない人は作っておきましょう。Qiitaのアカウントを作るのにも使えるので、ここでやめずに、この機会にぜひ。

詳しい手順

この記事を書くきっかけになったのがこちらでもあります。もともと公開手順を記事にしたかったのですが、もうめっちゃ詳しい解説があったので、断念しました。

__main__.pyについて

コマンドラインツールを公開する場合は、上の手順で__init__.pyと一緒に、__main__.pyというのも作りましょう。そうすると

python -m your_package

のようにパッケージ名から実行できる機能を持たせることができます。

__init__.pyと違って、このファイルには直接処理を書いていいです。また、パッケージ内の他のファイルからimportして、それらの機能を実行するみたいな使い道もアリだと思います。

公開後

バージョンアップ

 機能を追加するときはバージョンアップをしましょう。setup.pyのバージョンの数字を上げて、上の手順のビルドからやり直せばできます。GitHubにバージョンごとのタグも付けてあるわけですし、distとかbuildとかは一回消しちゃってからやった方がいいと思います。distの中に旧バージョンと新バージョンが混在したりすると面倒なので。
 注意点として、同じバージョンでのアップロードができないので、本当にちょっとした変更(README書き換えたとか)でも数字を上げる必要があります。

インストール数の確認

 パッケージを公開したら、どのくらいダウンロードされているのか気になりますよね?それが見られるサイトがこちらです。日ごとの推移とかもグラフにしてくれるので、筆者は毎日気になって確認しています。次の日の16時くらいになると更新されているかなって印象ですね。正確なところは分かりませんが。

↓こんな感じのバッジも作ってくれます(押すとpepy.techのページに飛びます)
PyPI Downloads

最後に

 ここまで読んで下さりありがとうございました。ここの記事とかサイトとかを全部活用すれば、とりあえず困ることはないと思いますがどうでしょうか?手順とかをまとめているサイトは、他にもいくつか見受けられました。しかし、バージョンの付け方とか、本題と違う情報は別途探さないと載ってないので、痒い所に手が届くといいかなと思っています。

 最後に宣伝です。筆者が公開したのは、タイピングゲームを簡単に作れるモジュールです。結構自信作なので、使ってみてもらえると嬉しいです。ゲーム制作未経験でも、なんなら課題以外でプログラムを書いたことがない人でも、使えるくらいの簡単さと自負しています。(というかサンプルコードのお題を書き換えれば、それだけで自作のタイピングゲームが作れてしまいますが)

PyPI

GitHub

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?