Wizard In The Market
システムトレードの魔術師

*

PYPIへの登録を10秒でできるようになる方法

公開日: : Python

pip 使ってますよね

Pythonを使っている人であれば、pip installでライブラリをインストールすることはもはや常識ですね。

pip でインストールできるようにするには?

PYPI にパッケージを登録すれば、pip でインストールできるようになります。パッケージのアップロードのためにはPYPIアカウントが必要になるので、作成しておいてください。

PYPI に登録するには?

twine というライブラリがあり、これを使えば以下のコマンドで簡単にアップロードできます。

これは dist ディレクトリ以下に保存されたパッケージを一括でアップロードするコマンドです。

PYPI 登録用のパッケージを作成するには?

python の setup.py を使って、パッケージを作成することができます。

sdist

ソースコードのパッケージング。インストール時にコンパイルが必要になります。

bdist

コンパイル済みバイナリをパッケージのなかに含める方法です。インストール側でビルド環境が不要になるメリットがあり、Windowsでは特に重宝されています。

最近では wheel を使うのがデファクトになっています。以下のコマンドで wheel を作れます。

wheel は pip でインストールできます。wheelをインストールすれば、setup.pyのときにbdist_wheelというコマンドを使えるようになります。

Python のパッケージ作成用のプロジェクトの作り方は?

細かいことを置いておいて、雛形を使って一気にパッケージ環境を整えてしまいましょう。そのために、cookiecutterを使うことにします。

cookiecutter とは Python 製のテンプレートジェネレータライブラリで、簡単にテンプレートを作成できます。

インストールすれば、ターミナルからcookiecutterコマンドが使えるようになります。

テンプレートを用意

cookiecutter で呼び出すテンプレートを用意します。ホームディレクトリ直下に.cookiecuttersディレクトリを作成し、そのディレクトリにテンプレートを置くことにします。具体的には以下のような流れです。

github からテンプレートをダウンロードします。今回は cookiecutter-pypackage-minimal を元に自分なりにより簡潔にできるようにしたcookiecutter-pypackage-kaniを使うことにします。

これで、cookiecutter コマンドからテンプレートを簡単に呼べるようになりました。

ちなみにですが、cookiecutterでデフォルト値の設定は、テンプレートプロジェクト内のcookiecutter.jsonファイルで変更できます。

requirements.txt を作成

プロジェクト内の必要なライブラリを自動で抜き出してまとめて、必要であれば一括でインストールできるようになるrequirements.txtもこのときに抑えておきましょう。pip freezeコマンドを使えば、簡単に作成できます。

私おすすめは以下のコマンドです。pipreqspip freezeの改良版で、sedでバージョンの指定をわざと外しています。必要ならあとで指定してください。

requirements.txtの内容をインストールしたければ、以下のコマンドを実行します。

ただ、今回のcookiecutter-pypackage-kaniでは、setup.pyの中で、自動でrequirements.txtを読み込み、依存パッケージをインストールするようにしています。

これまでの内容をまとめた実行ファイルの作成

以下のバッシュファイルを作成して、PATHを通して実行してください。私は、pypiupload.shと名付けています。

10秒で PYPI 登録をしよう

ここまでで10秒でPYPIの登録ができるようになる準備が完了しました。「準備の時間が全然10秒でできてねーじゃねーか」というクレームは受け付けていません。

上記のようにcookiecutter cookiecutter-pypackage-kaniコマンドを呼び出し、package_nameだけ設定します。そして、あとはpypiupload.shを呼び出して、アカウント情報を入力すれば完了!

ネットワークの状態にも寄りますが、🔟秒以内のパッケージの作成からアップロードまでできるようになったはずです。

ここまでできるようになれば、PYPIへの登録、自分のパッケージマネジャー化へのハードルはかなり下がったはずです。今回アップロードしたパッケージの削除はPYPIアカウントにログインして行ってください。これで快適なPYPIライフを!

にほんブログ村 為替ブログへ 
Fx-Kirin

About Fx-Kirin

2009年10月にFXを開始、翌年2010年5月から脱サラをしてFX業界に専念。 2012年10月頃から本格的に勝ち始め、一月で資産を倍にする、2年半月間負けなし等、安定した収支で2013年11月に生涯FX収支が1億を超える。 投資スタイルはシステムトレード。プログラミングの知識がほぼない状態から、独学で自分がしたいと思うことであればほぼ実現することが可能なレベルまで成長。好きな言語はRuby, Python。必要となればC++からVBA、Pascal等なんでも行う。MT4/MT5のプログラミングも得意。 2011年にはFXで稼いだ資金をもとにシンガポールに移住し、留学も兼ねて起業をチャレンジするほど、ビジネスを興すことに熱意がある。国内の業者を主に使い始めたことから、2012年に帰国。零細株式会社経営中。

Adsense

  • このエントリーをはてなブックマークに追加
  • Pocket
  • 67 follow us in feedly

関連記事

vim-slime を使って VIM の内容をコンソールに送信

この記事はVim Advent Calendar 2016の20日目の記事です。 選択行の内容をコンソールに送信

記事を読む

Python 2, Python 3 で更新したファイルを調べてreloadするパッケージを作った。

pdbでのデバッグにはreload機能がない IPythonには優秀なautorelaod機能がマジックコマンドで

記事を読む

Python requests に DefaultTimeout を設定する

Pythonコード 参考リンク [bm url="https://stackoverflow.com/quest

記事を読む

ctypes で c_char array を c_char_p に変換する

なかなか情報がなかったのでメモ書き。

記事を読む

Windowsユーザ御用達の uci.edu から直接python wheelをインストールしてくれるライブラリ pipwin

あんまり情報が出てこないのでメモ書き。 https://twitter.com/fx_kirin/status/9

記事を読む

Quantopian の pyfolio を単利運用に対応させる。

pyfolio は どんなデータを入れても複利運用として計算してしまうので、人によっては望まない検証方法だったりし

記事を読む

Pythonで簡単に画像検出でLinux GUI操作自動化ライブラリを作ったよ

[2015/02/07 追記] [bm url="http://fx-kirin.com/python

記事を読む

Derivatives analytics with Python の学習ノート 1,2章

洋書を読んでいると、いつも読んだ気になってちゃんと理解出来てるか自信がないことが多いので、チャプターごとに要点をまとめ

記事を読む

まだBokehで消耗してるの?これからはPandas-Bokehを使おうぜ

タイトルはあまり気にしないでください。全然、Bokehで消耗する価値があるとは思っています。ただ、最近Pandasの

記事を読む

話題のクローラー・スクレイピング!PythonならScrapyが超優秀な件

Rubyの読書会に行ったら、Pythonの面白いお話を聞けたというお話です。 Rubyクローラー本の読書会に参

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Adsense

Ubuntu で仮想ディスプレイを使う

雑多な備忘録ですが、せっかくなので残しておきます。 Ubuntu 18.04 の resolv.c

PYPIへの登録を10秒でできるようになる方法

pip 使ってますよね Pythonを使っている人であれば、pip installでライブラリ

The art of debugging with GDB, DDD, and Eclipse の読書メモ

GDBの勉強がしたくて、下の本を原著で読んでみました。10年前の本だけど全然現役でした。

JupyterでボタンからJavascriptを実行して追加のアウトプットをさせない方法

Javascriptを実行するとアウトプットセルの行が増える これがとても面倒だった。上の

まだBokehで消耗してるの?これからはPandas-Bokehを使おうぜ

タイトルはあまり気にしないでください。全然、Bokehで消耗する価値があるとは思っています。ただ

→もっと見る

PAGE TOP ↑