Ubuntu 22.04でPoetryを使用してPythonのパッケージをPyPIに公開する方法
こんにちは、みなさん。最初に挨拶させていただきます。
詩(し)は、Pythonの依存関係(いぞんかんけい)マネージャーであり、またPythonプロジェクトをビルドしてパッケージ化(ぱっけーじか)することもできます。PyPIは、Pythonパッケージのアップロードやダウンロードのための公式リポジトリです。このチュートリアルでは、公式のサードパーティソースとしてPythonパッケージを使用します。PyPIはPython Software Foundationによって運営されており、パッケージをPyPIに公開すると、自分自身または他のユーザーによるインストールが可能になります。
このチュートリアルでは、まずPyPIアカウントを作成し、その後アカウントとトークン認証を設定してPoetryと連携します。そして、パッケージ化されたプロジェクトをPyPIにビルドして公開することができます。これにより、他のPythonプロジェクトに公開されたパッケージを依存関係として追加することも可能になります。
前提条件
- An Ubuntu 22.04 server, set up according to our initial server setup guide for Ubuntu 22.04, with a non-root user with sudo privileges and a firewall enabled.
- The latest version of Python 3 installed on your machine following Step 1 of how to install Python 3 and set up a programming environment on an Ubuntu 22.04 server.
- Poetry installed on your system, following this guide on how to install Poetry to manage Python dependencies on Ubuntu 22.04.
ステップ1 — PyPIアカウントの作成
PyPIにパッケージを公開するためには、アカウントを作成する必要があります。ウェブブラウザで公式の登録ページにアクセスしてください。
次に、PyPIの認証情報をPoetryと安全に使用するためにトークン認証を有効にする必要があります。
ステップ2 — PyPIのトークン認証を有効にする
コマンドラインでPyPIアカウントを使用するための推奨方法は、トークン認証です。ユーザー名とパスワードの代わりに、単一の自動生成されたトークンを使用することができます。トークンはいつでも追加や取り消しができ、アカウントの一部への細かいアクセスを許可することもできます。これにより、より安全になり、パスワードが危険にさらされるリスクを回避できます。アカウントの設定に移動して、新しいAPIトークンを作成する必要があります。
「APIトークン」セクションにスクロールダウンしてください。 「APIトークンの追加」をクリックしてください。
次のページで、トークンに名前を付けることができます。このチュートリアルでは「poetry」と名付けますが、好きな名前を選んでください。
トークンが作成されたら、トークンをコピーすることが重要です。なぜなら、トークンは一度だけ表示されるからです。これは、必要に応じて新しいトークンを作成することができるAPIトークンの一般的な手法ですので、進む前にトークンに注意を払ってください。
今回のトークンを使用して、Poetryの資格情報を設定し、公開の準備をします。Poetryで必要なすべてのコマンドにAPIトークンを追加する代わりに、Poetryのconfigコマンドを使用して一度だけ設定します。
このコマンドを使用して、PoetryにAPIトークンを追加してください。
- poetry config pypi-token.pypi your-api-token
APIトークンを証明書として追加すると、Poetryはその証明書が平文ファイルに保存されていることを通知します。もし従来のユーザー名とパスワードを証明書として使用している場合、これは問題です。トークンは簡単に削除や更新ができ、またランダムに生成され、個々の使用ケースに固有です。これにより、便利さと引き換えにここでのトークンの保存は安全です。もしくは、各コマンドごとにAPIトークンを手動で入力することも選択できます。
これで、あなたはプロジェクトを作成し、公開する準備ができています。
ステップ3 — プロジェクトの構築
プロジェクトをパッケージングすることはビルディングと同じであり、これは公開する前に必要なステップです。プロジェクトをビルドするには、以下を入力してください。
poetry build
Building sammy-poetry (0.1.0) – Building sdist – Built sammy-poetry-0.1.0.tar.gz – Building wheel – Built sammy_poetry-0.1.0-py3-none-any.whl
2つのファイルが出力されます。最初のファイルはsdistで、tar.gzファイルに出力されます。2番目のファイルはwheelで、.whlファイルに出力されます。これらのファイルを使用して、PythonパッケージをPyPIに公開する準備が整いました。
ステップ4 — PythonパッケージをPyPIに公開する
Poetryのデフォルトのパブリッシュ先はPyPIです。認証のAPIトークンがすでに設定されている場合、パブリッシュコマンドには再度認証情報を含める必要はありません。
コンパイルしたパッケージを公開するには、以下の手順を実行してください。
poetry publish
Publishing sammy-poetry (0.1.0) to PyPI – Uploading sammy-poetry-0.1.0.tar.gz 100% – Uploading sammy_poetry-0.1.0-py3-none-any.whl 100%
PyPIプロジェクトをブラウザで開けば、公開済みのパッケージを確認できます。
あなたのパッケージは公開されており、PyPI上で公に利用可能であり、Poetryを介して依存性としても利用できます。他のPythonプロジェクトに独自の公開パッケージを依存関係として追加することができます。
Note
poetry publish –build
プロジェクトやワークフローの成熟度によっては、これがより効率的になる場合があります。
結論
このチュートリアルでは、ビルドと公開のためにPoetryを使用しました。PyPIアカウントを作成し、PoetryでAPIトークン認証を設定し、プロジェクトを公開する前にコンパイルしました。パッケージは公開され、Poetryを通じて依存関係として使用することもできます。
次に、Pythonの詳細をさらに深く学ぶために、当社のPythonプログラミングチュートリアルシリーズ「Pythonのコーディング方法」をご覧になってみてください。