2010-03-12 65 views
2

我需要使用Python 2.6.1在腳本變量中獲取Max OS X 10.6上的GIT路徑。我用這個代碼:如何獲得Python中安裝的GIT的路徑?

r = subprocess.Popen(shlex.split("which git"), stdout=subprocess.PIPE) 
print r.stdout.read() 

但問題是,輸出是空的(我試過stderr太)。它適用於其他命令,如pwdls

任何人都可以幫助我嗎?

更新:當我從終端運行which git它打印出預期的路徑。所以,which可以找到它。

更新2:我剛剛創建的bash腳本

#!/usr/bin/env bash 
GP=`/usr/bin/which git` 
PWD=`pwd` 
echo "PATH IS: ${GP}" 
echo "PWD IS: ${PWD}" 

和輸出

PATH IS: 
PWD IS: /Users/user/tmp 
+0

你對我的工作很好(雖然我不在OS X上)。這兩個換行符(一個來自*,其中一個來自打印)是否會給您帶來問題? – 2010-03-12 19:19:53

回答

2

所有這一切確實是迭代超過$ PATH中的目錄,檢查,看看是否該文件是存在的。只要寫一個小方法來做同樣的事情。

+0

我剛剛添加了一個「更新」的問題。 – 2010-03-12 19:00:04

+0

*其中*還檢查文件是否可由當前用戶執行。 – 2010-03-12 19:17:45

+0

是的,問題與$ PATH是不同的(爲什麼?)從TextMate和我們的應用程序。 – 2010-03-12 21:53:16