如何让我的git(windows上的msysgit)post-commit脚本以python而不是bash的形式调用我的python脚本?
我用python编写了一个提交后脚本,“c:\myfolder\myscript.py”。我想从提交后脚本调用它。这找不到它:如何让我的git(windows上的msysgit)post-commit脚本以python而不是bash的形式调用我的python脚本?,git,bash,msysgit,Git,Bash,Msysgit,我用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错误。在我的pytho
#!/bin/sh
c:\myfolder\myscript.py
bash认为命令c:myfoldermyscript.py——斜杠会被删除
因此,我尝试了向前斜杠:
#!/bin/sh
c:/myfolder/myscript.py
但是,bash似乎认为我的.py文件本身就是一个bash脚本,因此,当它错误地试图解释它时,我得到了bash错误。在我的python脚本的第一行工作时,添加了以下python解释器的路径: #!C:/apps/Python25/python #!C:/apps/Python25/python
有更好的方法吗?脚本的第一行称为a,唯一的问题是: SHEBANG指定系统可执行文件的绝对路径;这可能会导致具有非标准文件系统布局的系统出现问题。
即使系统具有相当标准的路径,同一操作系统的变体也很可能为所需的解释器提供不同的位置 唯一的其他方法是在脚本中直接调用python
#!/bin/sh
C:/apps/Python25/python c:/myfolder/myscript.py
无论哪种方式,前斜杠都是有序的:这是一个bash会话,用于执行Git及其挂钩。直接调用python解释器的目的是用环境变量替换它:
#!/bin/sh
$PYTHON_HOME/python $SCRIPT_FOLDER/myscript.py
你写的很有道理。因此,文件扩展名“py”的Windows机制与可执行文件“python.exe”相关联,因此“执行”py文件调用python.exe,该机制不能从Windows bash会话连接,对吗?对,Windows文件关联在bash会话中不起作用。但是如果PATH环境变量中有“
C:/apps/Python25
”,那么单独使用“python
”(或“python.exe
”)实际上可以工作。@VonC-查看您的用户配置文件,我想知道您是否介意看看我的这个问题并加上您的2美分,如果你的想法与已有的不同:@Corey:我会的,今天晚些时候(或明天早些时候)。@Corey:。。。完成了。不过,这不是一个完整的答案。这是因为Shebang指定了脚本文件解释器的位置,在本例中是Python
,而不是Bash
。