Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
プライベートパッケージを扱う方法について

プライベートパッケージを扱う方法について

いくつかの方法

  • gitリポジトリに同梱する
  • パッケージをディレクトリにまとめてhttpサーバーで公開する
  • pypi相当のサーバーをたてる

pypi相当のサーバーをたてるのは大掛かりであるし、そこまですることもないと思うのでとりあえずここでは前者2つのことだけ書いておく。

gitリポジトリに同梱する

あるプロジェクトでだけ必要であれば、gitリポジトリに同梱してしまうのがてっとり早い。 wheelパッケージを置いておくディレクトリは伝統的に(以前pip wheelのデフォルトのディレクトリ名がそうだったので) wheelhouse と呼ぶ。 wheelhouse にプライベートパッケージ hoge を置いた場合、以下のようにインストールする。

$ pip install hoge -f wheelhouse

-f--find-links の短縮形で、指定されたディレクトリを先に探索し、見つからなければ pypi を探しに行く。

パッケージをディレクトリにまとめてhttpサーバーで公開する

--find-links ではディレクトリ以外にも http などでリモートのサーバーを指定できる。 プロジェクトを横断して利用したいパッケージがある場合はこの方法を用いるとよいだろう。

簡単に公開してみるのであれば wheelhouse ディレクトリで python -m http.server (python2.7を利用しているなら python -m SimpleHTTPServer) を実行すればよい。 この簡易的なサーバーはディレクトリリスティングしてくれるので、 find-links に利用できる。 http://localhost:8000 を開いて、 wheelhouse 以下のファイルへのリンクを含む HTML が表示されるのを確認しておこう。

立ち上がったhttpサーバーが公開する hoge パッケージをインストールするには以下のようにする。

$ pip install hoge -f http://localhost:8000

あくまでこれは簡易的なサーバーであるため、実際に運用する場合は S3 などのクラウドストレージに置いたり(ディレクトリリスティングする方法は検討のこと)、 DirectoryIndex を有効にした apache を利用するのもよい。

まとめ

専用のアプリケーションサーバーは不要なのでシンプルに始められる方法としておススメ。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment