自作モジュールをPyPIに登録する


目的

自作モジュールをPyPIへ登録してpip installでインストールします。今回は簡単なコードを実装して使います。

方法

基本的に公式のチュートリアルに従います。個人的なこだわりで、wslを使ったりgithubに上げたり、仮想環境をpyvenvで作ったりしてますが、今回はそういう事が無くても出来るようにしているつもりです。何回かコマンドを使う必要がある為、そこで引っかかるかもしれません。そこは他の記事にお任せします。または後日、更新します。

言葉の定義

ライブラリ、パッケージ、モジュールの区別が難しいので、これを参考に大まかに区別をしておきます。

Pythonのモジュール、パッケージ、ライブラリ徹底解説!

必要なディレクトリやファイルを作る

公式のチュートリアルのままです。これを任意の場所に作ります。僕はデスクトップにPyPIフォルダを作ってその中で作業しています。

setup.cfgの編集

前はsetup.pyを作るのが公式だったようですが、今はsetup.cfgとpyproject.tomlを使うようです。中身は公式にお任せしますが、変更点についてだけ、お話します。赤枠で囲まれている所を変更します。

赤枠で囲まれたところは下の様に書き直しました。
name:自分の付けたいモジュール名
author:PyPIで登録した名前を入れてます
author_email:PyPIで登録したメールアドレスを入れてます
url:自分のgithubのurlを使っています。そのままでも動きました。
project_urls:自分のgithubのurlを使っています。そのままでも動きました。

buildする

必要なディレクトリやファイルが出来たらbuildしてPyPIへデプロイするする準備をします。ご自身のターミナル(僕の場合はwsl)で次のコマンドを実行して下さい。

コマンドの更新

buildコマンドを更新します。
python3 -m pip install --upgrade build
buildしてPyPIへ上げるファイルとディレクトリを作ります。
python3 -m build
上のコードを実行するとdistファイルが出来るはずです。中に.whlファイルと.tar.gzファイルが出来ていれば成功です。具体的には下図の様になります。

PyPIへの登録

テスト環境へアップロード

python3 -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*
テスト環境に上げたモジュールを使うために、自分の環境にインストールします。
python3 -m pip install --index-url https://test.pypi.org/simple/ --no-deps packaging_tutorial

本番環境へアップロード

テストで上手く出来たら本番環境にアップロードします。
python3 -m twine upload dist/*

この後はいつものpip install <package_name>でインストール出来るようになります。

感想

今回は、まずPyPIへアップロードするためだけに、公式チュートリアルに従って簡単に説明しました。説明が簡略化され過ぎて分からない所があると思いますので、その際は質問して下さると嬉しいです。可能な限り、ご説明させて頂きます。