Как я могу получить скрипт git (msysgit on windows) после фиксации для вызова моего скрипта python как python, а не как bash? - PullRequest
4 голосов
/ 10 октября 2009

Я написал скрипт пост-коммита на python, "c: \ myfolder \ myscript.py". Я хочу вызвать его из сценария пост-фиксации. Это не находит это:

#!/bin/sh
c:\myfolder\myscript.py

bash считает, что команда c: myfoldermyscript.py - слэши удаляются.

Итак, я попробовал косые черты:

#!/bin/sh
c:/myfolder/myscript.py

Но тогда кажется, что bash считает, что мой .py файл сам по себе является сценарием bash, и поэтому я получаю ошибки bash, поскольку он по ошибке пытается его интерпретировать.

Ответы [ 2 ]

6 голосов
/ 10 октября 2009

Первая строка скрипта называется Шебанг , и единственная проблема с ним:

Shebangs указывают абсолютные пути к системным исполняемым файлам; это может вызвать проблемы в системах с нестандартным расположением файловых систем.
Даже когда у систем достаточно стандартные пути, варианты одной и той же операционной системы могут иметь разные места для нужного интерпретатора.

Единственным другим способом было бы вызвать python непосредственно внутри вашего скрипта

 #!/bin/sh
 C:/apps/Python25/python c:/myfolder/myscript.py

В любом случае косые черты в порядке: это сеанс bash, который используется для выполнения Git и его хуков.
Интерес вызова прямого интерпретатора Python будет состоять в том, чтобы заменить его на переменную окружения:

 #!/bin/sh
 $PYTHON_HOME/python $SCRIPT_FOLDER/myscript.py
5 голосов
/ 10 октября 2009

Добавление следующего, пути к моему интерпретатору python, в качестве первой строки моего скрипта python:

#!C:/apps/Python25/python

Есть ли лучшие способы?

...