Skip to content

Instantly share code, notes, and snippets.

@aodag
Created July 23, 2017 11:46
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aodag/9a8118d06998b674e2d9597c6d02a6db to your computer and use it in GitHub Desktop.
Save aodag/9a8118d06998b674e2d9597c6d02a6db to your computer and use it in GitHub Desktop.
プライベートパッケージを扱う方法について

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

いくつかの方法

  • 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