2010-12-23 43 views
1

我寫了一個家庭作業以下,並在空閒正常工作和Eclipse運行的Python 3的Python腳本不能運行通過TextMate的,在IDLE OK和Eclipse

不過,我試圖從TextMate的運行新的第1行 - 我在這裏找到 - 在Mac上將它指向Python 3。它似乎在運行Python 3,但返回一個錯誤。它說:EOFError:讀取一行時的EOF。它指的是下面的第5行。

任何人都知道爲什麼?

順便說一句,這個TextMate問題不是家庭作業的一部分,所以我沒有試圖獲得作業幫助。我只是想弄清楚如何使用TextMate的使用Python 3

#! /usr/local/bin/python3 
# 
# Tests user string against two conditions. 
# 
user_string = input("Enter a string that is all upper case and ends with a period: ") 
if user_string.isupper() and user_string.endswith("."): 
    print("Your string met both conditions.") 
else: 
    if user_string.isupper(): 
     print("Your string does not end with a period.") 
    elif user_string.endswith("."): 
     print("Your string is not all upper.") 
    else: 
     print("Your string failed both conditions.") 
+0

尋求功課幫助沒有任何問題。只要你不要求我們做你的功課。 – Falmarri 2010-12-23 06:52:44

+0

謝謝。我很感激。 – Farrell 2010-12-23 14:17:23

回答

2

您看到的問題與Python版本無關。問題是TextMate不會嘗試重定向標準輸入,因此,當您通過TextMate的Python包Run Script命令運行時,Python程序會立即看到文件結束。 As explained here,TextMate過去比較有趣,但它使用的機制不再適用於OS X 10.6,因此該功能被禁用。

一個解決方案是使用TextMate的Python包的命令Shift-Command-RRun Script in Terminal命令。這導致TextMate打開一個終端窗口並在那裏運行腳本,您可以在那裏輸入輸入。不幸的是,儘管TextMate確實遵守了正常的命令Command-RRun Script command,但似乎並沒有使用Run Script in Terminal命令。你可以用各種方式驗證你自己。嘗試在TextMate中運行該代碼片段:

#! /usr/local/bin/python3 
import sys 
print(sys.executable) 

要解決這個問題,你可以設置TM_PYTHON環境變量的TextMate。有關如何執行此操作的更多詳細信息,請參見the answer here

0

TextMate的是使用內置Python,而不是尊重家當線。您可能必須破解捆綁代碼才能使用正確的python。

+0

謝謝。用下面的解決方案修復它,重新。在項目中編輯到TM_PYTHON。 – Farrell 2010-12-23 14:19:22

相關問題