LoginSignup
3
1

More than 5 years have passed since last update.

【packagecloud】pythonのパッケージをpackagecloudで管理する

Last updated at Posted at 2017-04-17

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
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1