pythonのパッケージをpackagecloudで管理する方法。
Wheelのビルド
setuptools
を使ってwheelをビルドします。
パッケージの設定をsetup.py
に記述します。
setup.py
from setuptools import setup, find_packages
setup(
name='python_packagecloud_test',
version='0.0.1',
author='',
author_email='',
url='',
license='See LICENSE.txt',
description='',
long_description=open('README.md').read(),
packages=find_packages(),
install_requires=[]
)
wheelをインストールし、ビルドします。
$ pip install wheel
$ python setup.py bdist_wheel
distディレクトリ下にpython_packagecloud_test-0.0.1-xxx-yyy.whl
というファイルがビルドされます。
package_cloudコマンドのインストール
$ gem install package_cloud --no-ri --no-rdoc
packagecloudのトークン
packagecloudでは以下の3つのトークンを使い分けるようです。
Master Token
Master TokenはRead Tokenを生成します。
Read Token
Read Tokenは、レポジトリ毎の認証に使われるread-onlyのtokenです。Read Tokenはpackagecloudnのインストールスクリプト実行時に自動的に生成されます。
API Token
CIなどに埋め込んでレポジトリにpushするのに使われるトークン
packagecloudへのpush
$ export PACKAGECLOUD_TOKEN=<API token>
$ echo "{\"url\":\"https://packagecloud.io\",\"token\":\"$PACKAGECLOUD_TOKEN\"}" > ~/.packagecloud
$ package_cloud push <username>/<reponame> dist/python_packagecloud_test-0.0.1-xxx-yyy.whl
packagecloudからのインストール
インストールスクリプトでインストール
$ curl -s https://<master-token>:@packagecloud.io/install/repositories/<username>/<reponame>/script.python.sh | bash
$ sudo pip install python-packagecloud-test==0.0.1
extra-index-url
指定でインストール
$ export PACKAGECLOUD_TOKEN=<read-token>
$ pip install python-packagecloud-test==0.0.1 --extra-index-url=https://$PACKAGECLOUD_TOKEN:@packagecloud.io/<username>/<reponame>/pypi/simple
or
$ pip install -r requirements.txt --extra-index-url=https://$PACKAGECLOUD_TOKEN:@packagecloud.io/<username>/<reponame>/pypi/simple