スキル python-packaging
📦

python-packaging

低リスク ⚙️ 外部コマンド🌐 ネットワークアクセス📁 ファイルシステムへのアクセス

PyPIでPythonパッケージを構築して公開

こちらからも入手できます: ActiveInferenceInstitute,wshobson

Python開発者は複雑なパッケージングワークフローと一貫性のないプロジェクト構造に苦しんでいます。このスキルは、pyproject.tomlやsetuptoolsなどの現代的な標準を使用してプロフェッショナルなPythonパッケージを作成するための完全なガイダンスを提供します。

対応: Claude Codex Code(CC)
⚠️ 67 貧弱
1

スキルZIPをダウンロード

2

Claudeでアップロード

設定 → 機能 → スキル → スキルをアップロードへ移動

3

オンにして利用開始

テストする

「python-packaging」を使用しています。 Clickとpandas依存関係、pytest for dev、CLIエントリポイントを持つ'data-utils'という名前のパッケージのpyproject.tomlを作成

期待される結果:

ビルドシステム設定、プロジェクトメタデータ、バージョン制約付き依存関係、オプションのdev依存関係、CLIスクリプトエントリポイント、black、ruff、pytestのツール設定を含む完全なpyproject.toml。

「python-packaging」を使用しています。 まずTestPyPIにパッケージを公開するにはどうすればいいですか?

期待される結果:

ステップバイステップの手順:(1) twineをインストール、(2) python -m buildでパッケージを構築、(3) twine checkで検証、(4) twine upload --repository testpypiでTestPyPIにアップロード、(5) TestPyPIからインストールしてテスト、(6) 準備ができたら本番のPyPIに公開。

セキュリティ監査

低リスク
v1 • 2/24/2026

This skill consists entirely of markdown documentation teaching Python packaging best practices. Static analyzer flagged 118 patterns (backticks, URLs, config examples) that are documentation content, not executable code. All findings are false positives from code examples in fenced markdown blocks. No actual security risks detected.

2
スキャンされたファイル
909
解析された行数
6
検出結果
1
総監査数
中リスクの問題 (1)
Documentation flagged as code execution
Static analyzer detected backtick characters in markdown documentation. These are fenced code block delimiters in documentation, not actual shell execution. The skill contains no executable Python or shell code - only educational content about Python packaging practices.
低リスクの問題 (2)
Documentation URLs flagged as network activity
Static analyzer detected hardcoded URLs in documentation. These are reference links to PyPI, GitHub, and Python packaging resources - not actual network requests in code.
Configuration examples flagged as sensitive file access
Static analyzer detected .pypirc configuration file references. This is documentation teaching users how to configure PyPI authentication - not unauthorized file access.
監査者: claude

品質スコア

38
アーキテクチャ
100
保守性
87
コンテンツ
23
コミュニティ
81
セキュリティ
91
仕様準拠

作れるもの

ライブラリ作者の公開

適切なプロジェクト構造、メタデータ、自動公開ワークフローを備えたPyPIで配布するための新しいPythonライブラリを作成します。

CLIツールの配布

エントリーポイント付きでコマンドラインツールをパッケージ化し、pipでインストール可能にして実行可能なコマンドにします。

エンタープライズパッケージ管理

複数のチームやリポジトリ間でコードを整理するために、プライベートパッケージインデックスと名前空間パッケージをセットアップします。

これらのプロンプトを試す

基本的なPythonパッケージ構造の作成
srcレイアウト、setuptoolsを使用したpyproject.toml、基本的なモジュール構造を持つ'my-tool'という新しいPythonパッケージを作成するのを手伝ってください。テスト用にpytestを含めたいです。
既存のパッケージにCLIエントリポイントを追加
ユーティリティ関数を持つ既存のPythonパッケージがあります。Clickを使用してCLIエントリポイントを追加し、インストール後にユーザーがコマンドラインから'mytool'を実行できるようにする方法を教えてください。
自動PyPI公開の設定
新しいリリースを作成したときにPythonパッケージをPyPIに構築して公開するGitHub Actionsワークフローを作成してください。パッケージ検証とTestPyPIテストのステップを含める必要があります。
モノレポの名前空間パッケージのセットアップ
会社のコードベースを複数のパッケージ(company-core、company-api、company-utils)に分割する必要があります。これらは名前空間を共有します。完全なプロジェクト構造とpyproject.toml設定を教えてください。

ベストプラクティス

  • src/レイアウトを使用して、未インストールソースディレクトリからの意図しないインポートを防止
  • PEP 621に従い、すべてのメタデータをpyproject.tomlで定義してモダンなパッケージングを実現
  • PyPIに公開する前に、クリーンな仮想環境でパッケージのインストールをテスト

回避

  • setup.pyを主要な設定として使用しない - pyproject.tomlに移行
  • ライブラリにはフラットレイアウトを使用しない(インストールなしでのインポートを許可するため)
  • APIトークンや認証情報をコミットしない - PyPI認証には環境変数を使用

よくある質問

pyproject.tomlとsetup.pyの違いは何ですか?
pyproject.tomlはPEP 518/621で認められたモダンな標準で、単一のファイルにビルド要件とメタデータを宣言します。setup.pyは実行可能なPythonコードを使用するレガシーアプローチです。新規プロジェクトではsetuptoolsやhatchlingなどのビルドバックエンドでpyproject.tomlを使用する必要があります。
PyPIに公開する前にTestPyPIに公開すべきですか?
はい、常に最初にTestPyPIでテストしてください。TestPyPIはPyPIの機能をミラーする別個のインデックスです。パッケージをそこにアップロードし、クリーンな環境でインストールして、すべての機能が動作することを確認してから、実際のPyPIに公開してください。
データファイルをパッケージに含めるにはどうすればいいですか?
pyproject.tomlの[tool.setuptools.package-data]でpackage-data設定を使用します。'*.json'や'templates/*.html'などのパターンを指定します。ランタイムには、モダンなPythonのためにimportlib.resources.files()を使用してファイルにアクセスします。
最初のパッケージ公開ではどのバージョンから始めるべきですか?
最初のパッケージ公開では0.1.0から始めて、パッケージが初期開発段階であることを示します。セマンティックバージョン管理(MAJOR.MINOR.PATCH)を使用します。安定したパブリックAPIを持ち、かつ破壊したくない場合は1.0.0に移行してください。
gitタグからパッケージのバージョンを自動化できますか?
はい、ビルドシステムのrequiresにsetuptools-scmを使用してください。gitタグからバージョン情報を読み取るようにpyproject.tomlで設定します。これによりバージョンがgit履歴と一致し、バージョン管理が自動化されます。
ユーザーがpipでインストールできるCLIツールを作成するにはどうすればいいですか?
pyproject.tomlの[project.scripts]でエントリポイントを定義します。'mytool = my_package.cli:main'のように、コマンド名をPython関数パスにマッピングします。インストール後、ユーザーはターミナルから'mytool'を実行できます。

開発者の詳細

ファイル構成