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

関連記事

Flast-Sockets + redis-py で簡単 Websocket サーバー実装

参考にしたサイト Using WebSockets on Heroku with Python | Heroku

記事を読む

swig で foofunction is private と怒られた時。

例えばのエラーとしてはこれ。 問題は、公開する予定のクラスのpublicインスタンス変数にprivateにしなけれ

記事を読む

Pythonで簡単自動化!PyAutoGuiが便利すぎて感動したのでご紹介

以前こんな記事を書いていたのですが、これがまったく不要になるとても便利なPython Libraryがあった

記事を読む

絶対ダメ! マルチスレッドでの共通変数のインクリメント演算

デバッグ中の発見 とあるマルチスレッドプログラムをPythonで書いていた際に遭遇した誤使用です。C/C++等

記事を読む

no image

vim-ipythonをWindows 7 x64で使うとR6034 が出る件

個人的なただの忘備録。 Visual Studioのコマンドプロンプトから実行すること。 http://st

記事を読む

Python2 から Python3 へのC Extension の移行

最初に追加 モジュールの初期化と状態情報を書き換える initmyextension 関数などの初期状態の関

記事を読む

CPP extension vs Cython vs CPython on calculating the mean of numpy array

I'd like to get any feedback to make cython faster like

記事を読む

ipdb だけではなく IPython.embed も使おう

ipdb だと複数行の挿入ができなかったりするが、その問題が解消される。明らかにこちらのほうが使い勝手がいい。行のデ

記事を読む

Interactive Brokers 証券の Python API を利用する

Interactive Brokers 証券とは 日本には珍しく自動売買プラットフォームが提供されいてる証券会社です。

記事を読む

Pythonのsocketでプロセス間通信をして価格データ等を送信する

どうも、お久しぶりです。キリンです。 取り敢えず1ヶ月ほど、連続でブログの更新を続けてみたのですが、そ

記事を読む

Message

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

Adsense

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

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

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

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

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

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

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

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

SQLAlchemy のマイグレーションライブラリ Alembic を使ってみる。

SQLAlchemyの作者が作ったデータベースマイグレーションツール。個人的には、SQLAlch

→もっと見る

PAGE TOP ↑