概要
前回 Pypi パッケージを TestPypi で公開する方法を紹介しました
Pypi の場合パブリックに公開されてしまうのでプライベートなパッケージを配布したい場合には向きません
Gitlab には Pypi のパッケージを公開する機能がありますが
今回は Gitlab で Pypi のパッケージを公開する方法を紹介します
環境
- macOS 11.2.3
- Python 3.8.7
- Gitlab 13.9.4
パッケージの作成
前回のパッケージを流用します
簡単なパッケージ作成のチュートリアルなのでまだパッケージがない場合はこちらの記事を参考に作成してください
Gitlab の準備
何でも OK です
自分で Omnibus インストールを使って Ubuntu 上に構築しても OK です (参考)
また適当のプロジェクトを作成しておいてください
そして ProjectID を確認しておいてください
ProjectID はプロジェクトのトップ画面で確認できます
パーソナルアクセストークンの入手
Gitlab にパッケージをアップロードするためのアクセストークンを取得します
User Settings -> Access Tokens から取得できます
トークンの名前を設定します
この名前はあとでユーザ名として使用します
トークンのスコープに「api」を設定します
.pypirc の作成
pypirc はパッケージをアップロードするリポジトリの情報を記載する認証メタファイルです
デフォルトでは Gitlab に関するリポジトリ情報がないので手動で記載します
touch ~/.pypirc
vim ~/.pypirc
[distutils]
index-servers =
gitlab
[gitlab]
repository = https://gitlab.example.com/api/v4/projects/2/packages/pypi
username = upload_package
password = xxxx
repository は Gitlab の package API のエンドポイントを記載します
プロジェクトの ID を記載する部分があるので事前に確認した ID を記載します
username は先程作成した API トークンの名前を記載します
password は取得した API トークンを記載します
公開する
これで準備 OK です
あとは Pypi 同様コマンドで公開できます
python3 -m twine upload --repository gitlab dist/*
--repository
オプションで先程 .pypirc
に記載した [gitlab] のディレクティブ名を指定します
ちゃんと公開されると以下のように Gitlab の「Package Registry」にファイルがアップロードされているのが確認できると思います
動作確認
使う場合は以下のようにします
python3 -m pip install --index-url https://upload_package:xxxx@gitlab.example.com/api/v4/projects/2/packages/pypi/simple --no-deps echo-test-hawksnowlog
これでパッケージをインストールできます
0 件のコメント:
コメントを投稿