独自のホイールを公開する-PyPIパッケージのアップロードの練習
アップロードに 失敗しました (403): 認証情報が無効 または 存在 しません
エラーの理由:、python setup.py sdist upload
アップロード方法は現在廃止されています。
解決策:より糸を使用する : twine upload dist/*
この記事では、アップロードに関連する手順についてのみ説明します。アップロードの方法setup.py
については、公式ドキュメントを参照してください。
アップロードする前の注意事項
- パッケージが開発されており、ルートディレクトリにsetup.pyが存在する必要があると仮定します。
- ホイールを説明するためにREADME.rstを用意するのが最善です。これは必須ではありませんが、ドキュメントは下着のようなものです。
- 著作権情報など、コードフォルダー外のファイルをパッケージ化する必要がある場合は、MANIFEST.inも作成する必要があります 。
setup.py
補足説明
name
一意である必要があります。数字と文字を使用できます。pipのインストールではアンダースコアのみがサポートされるため、アンダースコア(_)の代わりにアンダースコア(-)を使用することをお勧めします。たとえばpip install my-pkg
、問題が発生しないように注意してください。。version
セマンティックバージョン番号のルールに従うことをお勧めします。これは単純に次のようになります。1.2.0- 著者の名前とメールアドレスは、PyPIアカウントと同じである必要はありません。
ローカルパッケージングコマンドをテストする
上記のいずれにも問題がない場合は、ローカルディレクトリで次のコマンドを実行すると、distディレクトリに* .tar.gzパッケージファイルを正常に生成できるはずです。
python setup.py sdist
パッケージファイルをアップロードしてPyPIに公開します
PyPIアカウントを作成する
非常に簡単です。公式ウェブサイトhttps://pypi.python.org/pypi?...から直接登録し ますが、メールを確認してアクティベーションを確認する必要があります。
ユーザー認証ファイルを作成する ~/.pypirc
ユーザーディレクトリに新しい空のファイルを作成し、.pypirc
次のように名前を付けます。
[distutils]
index-servers=pypi
[pypi]
repository = https://upload.pypi.org/legacy/
username = <username>
password = <password>
ユーザー名とパスワードは前の手順で作成したものであり、プレーンテキストで直接入力します。プレーンテキストのパスワードが安全でないと思われる場合は、空白のままにしておくと、アップロードプロセス中に手動で入力するように求められます。
パッケージを登録する
実際にアップロードする前に、PyPIにパッケージを登録して確認する必要があります。登録するにはいくつかの方法があります。
- コマンドの使用は
python setup.py register
最も簡単ですが、公式Webサイトは推奨されていません。これは、HTTPの使用が暗号化されていないため、攻撃者がパスワードを盗聴する可能性があるためです。 - PyPI Webサイトからフォームを送信して、登録の確認を完了します。
pip install twine
その後twine register dist/mypkg.whl
、インストールはコマンドを使用して登録を 完了します 。
アップロードして公開を終了します
次の2つの方法のいずれかを選択して、ホイールを公開できます。
- 次のコマンドを使用します。
python setup.py sdist upload
上記と同じように、単純ですが、潜在的な安全上の問題があるため、現在は削除されています。 - より糸を使用する :
twine upload dist/*
パッケージを管理する
パッケージが正常にアップロードされた場合、PyPI Webサイトにログインすると、右側のナビゲーションバーに管理エントリが表示されます。
パッケージ名をクリックすると、パッケージを管理できます。もちろん、ここからパッケージを削除することもできます。
他の人にあなたのバッグを使わせましょう
パッケージがリリースされた後、他の人はpipを使用してパッケージファイルをインストールするだけで済みます。といった:
pip install package-name
パッケージを更新すると、他の人は--update
パラメータを介して更新できます。
pip install package-name --update
考えられるエラー
アップロードに失敗しました(403):認証情報が無効または存在しません。
ユーザー認証情報が間違っているため、ユーザー認証ファイルを作成する必要があります ~/.pypirc
。上記を参照。
アップロードに失敗しました(403):「xxx」パッケージ情報を編集することはできません
アップロードを開始する前にパッケージを登録する必要があります。登録コマンドを実行します。python setup.py register
サーバーの応答(401):登録が不完全です。あなたのメールをチェック
PyPIアカウントでメールの確認が完了していません。登録済みのメールアドレスにアクセスして確認メールを見つけ、確認を完了して、失敗した手順を再試行する必要があります。
サーバーの応答(400):無効な分類子「トピック::ソフトウェア開発::ユーティリティ」
setup.pyファイルの分類子情報が間違っています。公式ウェブサイトで正しい分類に従って分類子を記述してください。
エラー:以前のコマンドで作成されたdistファイルがありません
パッケージ化する前にアップロードコマンドを開始しました。次のように、パッケージ化とアップロードの操作を一緒に実行することをお勧めします。
python setup sdist upload
エラー:アップロードに失敗しました(499):クライアントが切断されました
これはネットワークの問題であるはずです。数回試してください。
アップロードに失敗しました(400):ファイルは既に存在します
ファイルはすでに存在しているため、毎回バージョン番号を更新する必要があります。
参考文献
著者について:現在テスト開発関連の作業に従事しているPythonテクノロジー愛好家は、元のソースを示してください。私のブログhttps://betacat.onlineをフォローすることを歓迎し ます、あなたは群衆になるために私の公式アカウントに行くことができます。