我通读了Add to python path mac os x,我认为这样做是一个好主意,但IDLE仍然给我一个简单的open(文件名,模式)调用带来了语法错误,所以我进一步看了一下,发现我能够做到如http://developer.apple.com/library/mac/#qa/qa1067/_index.html所述,并在.MacOSX文件夹中设置了environment.plist,所以我在主目录中执行了此操作,但仍然没有任何更改…我现在迷路了:-)
那就是我在.bash_profile中添加为python-path以及我的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()
错误:
File "proPass_script.py", line 9
f = open('/Users/mohi/Desktop/proPass_project/server_service/systems.xml', 'rw')
^
SyntaxError: invalid syntax
解决方法:
PYTHONPATH不会影响您是否收到SyntaxError-仅影响ImportError.因此,如果您遇到SyntaxError,则您的代码还有另一个问题.请发布代码,我们会指出.
编辑:您的错误在此行上:
@app.route('/proPass', method ='POST')
@表示装饰器,仅在函数定义(def),类定义(类)或其他装饰器之前的行上有效.
它在空行的第一个字符上显示错误,因为它在那里需要一个函数或类定义.
有关装饰器的更多信息,请参见function definitions的文档.