Mac OSX上的Python路径

3 投票
1 回答
7595 浏览
提问于 2025-04-16 23:46

我看了关于如何在Mac OS X上添加Python路径的帖子,觉得这样做挺不错的。但是在IDLE里,我用open(filename, mode)这个简单的调用时,还是出现了语法错误。于是我继续查找,发现可以按照这个链接里的说明,设置一个environment.plist文件在.MacOSX文件夹里。我在我的主目录下做了这个设置,但还是没有任何变化……现在我有点迷茫了:-)

这是我在.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()

错误信息:

    File "proPass_script.py", line 9
    f = open('/Users/mohi/Desktop/proPass_project/server_service/systems.xml', 'rw')
    ^
    SyntaxError: invalid syntax

1 个回答

3

PYTHONPATH 这个环境变量并不会影响你是否会遇到 SyntaxError(语法错误)——它只会影响 ImportError(导入错误)。所以,如果你遇到了 SyntaxError,说明你的代码还有其他问题。请把代码发出来,我们可以帮你找出问题所在。

补充说明:你的错误出现在这一行:

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

@ 符号表示一个装饰器,它只能放在函数定义(def)、类定义(class)或者另一个装饰器的前面那一行。

错误出现在 open 这一行的第一个字符,因为它在期待一个函数或类的定义。

想了解更多关于装饰器的信息,可以查看 函数定义 的文档。

撰写回答