LoginSignup
4
3

More than 5 years have passed since last update.

post-receiveとpost-mergeを使うときのメモ

Posted at

いままでfixできないバグをfixできたので、メモする。

いつもの環境:

local: git push origin master
↓
remote(bare): post-receiveでgit pull
↓
remote(cloned): post-mergeでpythonスクリプト実行

こういう環境設定で、 post-merge スクリプトを実行して、
そのスクリプトの中にサードパーティ製のモジュールを import しているとき
(そのモジュールはちゃんと pip install してある)、
何故か git push すると そのサードパーティ製モジュールが ImportError がraiseされる

ということがあって、なんでそういうエラーがでるかというと、remote に複数のPythonがインストールしてあって、意図していないPythonが実行されている(すなわち pip install した場所を使わないPythonが使われている)らしい。

たとえば

  1. /usr/bin/python
  2. $HOME/.pythonbrew/pythons/Python-2.7.3/bin/python

の2つがあるときに、 2 のPythonを使いたいのに、 1 のPythonが実行されている。

ので、 post-merge.py をそのまま動かすんじゃなくて、
shellscript をかませて実行させると、うまく実行できた。

つまり

post-merge.sh
#!/bin/sh

BIN="$HOME/.pythonbrew/pythons/Python-2.7.3/bin/python"

$BIN $HOME/path/repo/post-merge.py
post-merge.py

import flask


あー、よかった、これでうまくいくわー

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3