Pythonpath на Mac OSX

Я прочитал Add to python path mac os x и решил сделать это хорошая идея, но все же IDLE дает мне синтаксическую ошибку для простого вызова open(filename, mode), поэтому я посмотрел немного дальше и обнаружил, что могу сделать так, как указано в http://developer.apple.com/library/mac/#qa/qa1067/_index.html и настроил environment.plist в папке .MacOSX, поэтому я сделал это в своем домашнем каталоге и до сих пор никаких изменений ... Теперь я потерян :-)

Это то, что я добавил как свой путь к python в .bash_profile и тот же путь в моем окружении.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


person markus    schedule 17.08.2011    source источник
comment
Поместите точную и полную трассировку и ошибку между <pre> и </pre>, чтобы мы могли точно увидеть, в чем может быть проблема. Кроме того, добавьте несколько строк контекста — часто ошибка находится в одной из строк перед, где она обнаружена.   -  person agf    schedule 17.08.2011


Ответы (1)


PYTHONPATH не влияет на то, получите ли вы SyntaxError — только ImportError. Итак, если вы получаете SyntaxError, у вас есть еще одна проблема с вашим кодом. Пожалуйста, опубликуйте код, и мы укажем его.

Изменить: ваша ошибка в этой строке:

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

@ обозначает декоратор, который действителен только в строке непосредственно перед определением функции (def), определением класса (class) или другим декоратором.

Он показывает ошибку на первом символе строки open, потому что он ожидает там определения функции или класса.

Дополнительные сведения о декораторах см. в документации по определениям функций.

person agf    schedule 17.08.2011
comment
k, не знал этого, немного поискал в сети, и я нашел людей с похожими проблемами, и им пришлось установить pythonpath - person markus; 17.08.2011
comment
Это больше комментарий, чем ответ. - person Shawn Chin; 17.08.2011
comment
omg ... Спасибо, буду иметь это в виду ... Мне нужно более точно прочитать руководство - person markus; 17.08.2011