2011-08-17 126 views
3

我通過Add to python path mac os x看過,我認爲這樣做是個好主意,但IDLE仍然給我一個簡單的open(filename, mode)調用的語法錯誤,所以我進一步觀察,發現我能夠按照http://developer.apple.com/library/mac/#qa/qa1067/_index.html中的說法操作,並在.MacOSX文件夾中設置了一個environment.plist,所以我在我的家庭目錄中做了這樣的操作,但仍然沒有改變...我現在丟失了:-)Mac OSX上的Pythonpath

那就是我添加的在.bash_profile中我的Python路徑,在我environment.plist相同的路徑(不包括:$ PYTHONPATH):

PYTHONPATH="/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7:$PYTHONPATH" 
export PYTHONPATH 

編輯: 多數民衆贊成在我得到的語法錯誤......在解釋工作正常

import xml.etree.ElementTree as et 
import json 

app = Bottle() 

@app.route('/proPass', method ='POST') 

#here happens here, need it further down in the code... which is not really relevant 
f = open('/Users/mohi/Desktop/proPass_project/server_service/systems.xml', 'rw') 

def getData(): 
    timestamp = request.POST.get('timestamp', '').strip() 
    data = request.POST.get('data', '').strip() 

    if timestamp: 
     processData(data, timestamp) 
run() 

錯誤:

​​

+1

把準確和完整的回溯和錯誤放在'

' and '
'之間,這樣我們就可以確切地看到可能是什麼問題。另外,添加幾行上下文 - 通常錯誤出現在__before__其中一行檢測到錯誤的位置。 – agf

回答

3

PYTHONPATH不會影響你是否獲得SyntaxError - 只有一個ImportError。所以,如果你得到一個SyntaxError,你的代碼還有另一個問題。請發佈代碼,我們將指出。

編輯:你的錯誤是在這條線:

@app.route('/proPass', method ='POST') 

@指定一個裝飾,這是隻有上線立即生效函數的定義(def),一類定義(class)之前,或另一個裝飾者。

它顯示了open行的第一個字符的錯誤,因爲它期望有一個函數或類定義。

有關修飾器的更多信息,請參閱文檔function definitions

+0

k,不知道,看了一下網絡,我發現有類似問題的人,他們不得不設置pythonpath – markus

+0

這是一個比答案更多的評論。 –

+0

@Shawn更新以解決他的問題。 – agf