pypiに初アップしたので、一連の流れをまとめる

pypiにライブラリを初めてアップしたので、その一連の流れをメモしておく。

アップしたライブラリ

pypi.python.org

pypiへのユーザー登録

PyPI - the Python Package Index : Python Package Index

へ登録する

ライブラリの作成

  • sampleプロジェクトのclone

以下をcloneしたらいい感じに雛形ができた

# git clone https://github.com/pypa/sampleproject.git

github.com

  • ライブラリの作成

雛形にそってライブラリを作成する

  • 動作テスト
新規インストール : pip install -e [target_dir]
アップデート : pip install -U [target_dir]

でinstallし、確認できる。 終わった後は以下でok

pip list
pip uninstall [target_lib]

この時にpyenvを使ってバージョンを変えてテストするとなおよい

pyenv virtualenv 3.4.3 test
pyenv versions
pyenv local test
python --version => 3.4.3になってる

pypiへのアップのための事前準備

  • setup.py編集

それぞれ雛形に沿い、編集する

  • README関連の編集

  • MANIFEST.inの編集

これはパッケージをpypiをアップするときに必要なもの

ここを編集しないと後述のpip install した際にdata/data_fileがないよ、

っておこられてinstallできない

以下を末尾に付け加える

include data/*

なお、python setup.py関連の参考は以下

ソースコード配布物を作成する — Python 2.7ja1 documentation

pypiへのアップ

いよいよできたので、pypiにアップする

初回登録時

  • 登録コマンド
# python setup.py sdist
# python setup.py bdist_wheel --universal
# python setup.py register

python setup.py registerでlogin アカウントが必要 なお、

Server response (401): basic auth failed

っていうのがでてログインできなくはまったが、 登録先のメールアドレスに確認メールが届いており、そこから有効化させたら正常にできた。

これで登録できたので、pypiにアクセスし確認する

次回からの更新時

  • setup.pyの編集

version をあげる

  • 更新コマンド
# python setup.py sdist
# python setup.py bdist_wheel --universal
# python setup.py sdist bdist_wheel upload

import できることを確認

環境でpip install hogehogeをし、 正常にimport、動作することを確認すること

なお、以下のエラーが出た場合は MANIFEST.inを編集してない可能性が高い。

error: can't copy 'data/data_file': doesn't exist or not a regular file

以上で完了