pypiに初アップしたので、一連の流れをまとめる
pypiにライブラリを初めてアップしたので、その一連の流れをメモしておく。
アップしたライブラリ
pypiへのユーザー登録
PyPI - the Python Package Index : Python Package Index
へ登録する
ライブラリの作成
- sampleプロジェクトのclone
以下をcloneしたらいい感じに雛形ができた
# git clone https://github.com/pypa/sampleproject.git
- ライブラリの作成
雛形にそってライブラリを作成する
- 動作テスト
新規インストール : 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
以上で完了