2013-09-26 3 views
0

Я пытаюсь использовать API-интерфейс Bloomberg python. Для этого мне нужно установить переменную среды BLPAPI_ROOT. Я добавил,Ошибка настройки переменных среды в python

export BLPAPI_ROOT="/home/user/Downloads/blpapi_cpp_3.6.3.1" 
export PATH=$PATH:$BLPAPI_ROOT 

в мой .bashrc файл и запустить источник .bashrc. Теперь, когда я открываю питон оболочку и сделать,

print os.environ['BLPAPI_ROOT'] 

это дает мне правильный вывод. Но когда то же самое происходит внутри установленного setup.py, он выбрасывает

Traceback (most recent call last): 
    File "setup.py", line 27, in <module> 
    blpapiRoot = os.environ['BLPAPI_ROOT'] 
    File "/usr/lib/python2.7/UserDict.py", line 23, in __getitem__ 
    raise KeyError(key) 
KeyError: 'BLPAPI_ROOT' 

Что мне здесь не хватает?

система: Ubuntu 12,04 Python 2.7

+1

Ошибка возникает при запуске скрипта с другим контекстом безопасности, например. используя sudo –

+0

Но без sudo, я получаю разрешение отклонено, поскольку он пытается получить доступ к /usr/local/lib/python2.7/dist-packages/blpapi. Есть ли правильный способ сделать это, что мне не хватает? –

+0

Возможно, используйте 'chmod' для изменения прав доступа для этой папки, а затем попробуйте. – chackerian

ответ

1

Я хотел бы попробовать использовать его следующим образом:

import os 
try: 
    os.environ['BLPAPI_ROOT'] = "/home/user/Downloads/blpapi_cpp_3.6.3.1" 
except EnvironmentError: 
    sys.exit(1) 
1

Это довольно старая, но для тех, кто поиска, вы можете обойти эту проблему, установив Sudo для сохранения экологической переменной BLPAPI_ROOT, a la keep environmental variables using sudo.

sudo visudo 

Затем добавить:

Defaults env_keep +="BLPAPI_ROOT" 

Теперь вы можете запустить:

sudo python setup.py install 

и он должен работать нормально.

+0

Это не работает в моем случае. Может быть, потому, что я внутри виртуального? –