如何在我的git(windows上的msysgit)后提交脚本以python而不是bash的形式调用我的python脚本?

Cor*_*ger 4 git bash msysgit

我在python中写了一个post commit脚本,"c:\ myfolder\myscript.py".我想从post-commit脚本调用它.这找不到:

#!/bin/sh
c:\myfolder\myscript.py
Run Code Online (Sandbox Code Playgroud)

bash认为命令c:myfoldermyscript.py - 斜线被丢弃.

所以,我尝试了正斜杠:

#!/bin/sh
c:/myfolder/myscript.py
Run Code Online (Sandbox Code Playgroud)

但是,似乎bash认为我的.py文件本身就是一个bash脚本,所以我得到了bash错误,因为它错误地试图解释它.

Von*_*onC 6

脚本的第一行称为Shebang,唯一的问题是:

Shebangs指定系统可执行文件的绝对路径; 这可能会导致具有非标准文件系统布局的系统出现问题.
即使系统具有相当标准的路径,同一操作系统的变体也很可能具有所需解释器的不同位置.

唯一的另一种方法是直接在脚本中调用python

 #!/bin/sh
 C:/apps/Python25/python c:/myfolder/myscript.py
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,正斜杠都是有序的:这是一个bash会话,用于执行Git及其钩子.
直接调用python解释器的兴趣是用环境变量替换它:

 #!/bin/sh
 $PYTHON_HOME/python $SCRIPT_FOLDER/myscript.py
Run Code Online (Sandbox Code Playgroud)


Cor*_*ger 5

添加以下内容,我的python解释器的路径,作为我的python脚本的第一行工作:

#!C:/apps/Python25/python

还有更好的方法吗?