2010-09-18 149 views
4

如果從終端啓動Google代碼上載Python腳本,它將按預期工作,但當我使用Bourne Shell中的代碼啓動它時腳本文件,它會失敗,並顯示錯誤「close failed in file object destructor: Error in sys.excepthook: Original exception was:」。Python腳本無法在從Shell文件啓動時運行,但在從終端啓動時運行

#!/bin/sh 
BUILD_FOLDER="/Users/James/Documents/Xcode Projects/Uber Sweep - Mac/build/Release & Package" 

if [ -f "$BUILD_FOLDER/Uber Sweep (64 bit).zip" ]; then 
python /Users/James/Scripts/Google\ Code\ Upload.py -s "Uber Sweep - Mac OS X (64 bit)" -p "uber-sweep" -u "EXCLUDED" -l "Featured,Type-Archive,OpSys-OSX" "$BUILD_FOLDER/Uber Sweep (64 bit).zip" | echo 
fi 

這是爲什麼?

感謝你的幫助,
jrtc27

+0

'echo'不接受標準輸入的任何內容,所以它什麼都不做,只是輸出一個空行。嘗試指定'python'的完整路徑。腳本的PATH可能與交互式shell不同。你應該能夠引用你的Python腳本的名字並避免空間的尷尬轉義。 – 2010-09-18 15:49:45

+0

是完整的異常消息嗎?如果不是,那麼請發佈完整的異常消息。也請將代碼或鏈接發佈到Google \ Code \ Upload.py。爲什麼你將python腳本傳遞給'echo'? – lesmana 2010-09-18 15:49:53

+0

不幸的是,這是我得到的完整錯誤信息。我管它到'回聲',以便我可以查看腳本的結果。 'Google Code Upload.py'是[Google自己的腳本]的一個未經修改的版本(http://code.google.com/p/support/source/browse/trunk/scripts/googlecode_upload.py) - 請注意,我花了r190 (發佈時的最新版本)。 – jrtc27 2010-09-18 16:02:15

回答

1

echo不接受從標準輸入任何東西,所以它做什麼,但輸出一個空行。腳本的輸出應該不需要做任何事情。

嘗試指定python的完整路徑。該腳本的PATH可能與您的交互式shell不同。

你應該能夠引用你的Python腳本的名字,並避免空間的尷尬逃脫。