Python 2.7 с ошибкой blpapi импорта API Bloomberg
Это моя среда разработки:
- Windows 7 на 64-битном ноутбуке HP Pavilion
- Python 2.7, 32-битный в папке C:\python27
- Средой разработки является Eclipse с PyDev, но это не имеет значения, потому что я получаю такой же сбой, использую ли я Anaconda или Notepad++.
- Бинарный установщик Python 2.7 для Windows - 32-разрядная версия 3.5.3 После установки PATH среды в Windows для Python BLPAPI находит и устанавливает в каталог C:\Python27, создавая
C:\Python27\Lib\site-packages\blpapi
,
До моей 32-битной установки Python и BLPAPI я пробовал 64-битный Python 2.7 с 64-битной установкой BLPAPI, но результаты были одинаковыми для 64- или 32-битной.
Мой скрипт на Python терпит неудачу в этой одной строке: import blpapi
PyDev выдает этот код ошибки:
Traceback (most recent call last):
File "C:\Users\Greg\workspace2\Bloomberg\src\TestImport.py", line 1, in <module>
import blpapi
File "C:\Python27\lib\site-packages\blpapi\__init__.py", line 5, in <module>
from .internals import CorrelationId
File "C:\Python27\lib\site-packages\blpapi\internals.py", line 50, in <module>
_internals = swig_import_helper()
File "C:\Python27\lib\site-packages\blpapi\internals.py", line 46, in swig_import_helper
_mod = imp.load_module('_internals', fp, pathname, description)
ImportError: DLL load failed: The specified module could not be found.
3 ответа
Я столкнулся с подобной проблемой и потратил некоторое время на ее устранение с помощью службы поддержки Bloomberg. Вот что я узнал:
Ошибка ImportError является результатом того, что Bloomberg не может найти файл DLL "blpapi3_32.dll". Этот DLL-файл может быть расположен в папке \ bin или \ lib библиотеки Bloomberg C/C++, которая находится там же, где вы получили исполняемый файл Python. Итак, скачайте эту библиотеку (v3.7.5.1 на момент написания этой статьи) и попросите переменную среды "Путь" вашей системы включить это местоположение. Это должно решить проблему.
PS вы можете получить доступ к переменной PATH через Пуск> щелкните правой кнопкой мыши "Компьютер" > Свойства> Дополнительные параметры системы> Дополнительно (вкладка) > Переменные среды> найдите переменную "Путь" в разделе "Системные переменные". Измените эту переменную, указав в ней расположение файла DLL, например, если исходная переменная Path - "C:\Python27\Lib\site-packages\PyQt4", то новой переменной Path должно быть "C: \ Python27 \ Lib \ site-". пакеты \PyQt4;C:\ BLP \API\blpapi_cpp_3.7.5.1\ Bin"
Обратите внимание на эту статью от Bloomberg:
Чтобы скрипты Python вызывали функции API Bloomberg, библиотеки, распространяемые как часть SDK Bloomberg C++, должны быть доступны интерпретатору Python. Шаг 3 установки выше обеспечивает общесистемную установку этой библиотеки. Пользователи Linux/Solaris/*nix без общесистемных установок должны установить переменную среды LD_LIBRARY_PATH (или DYLD_LIBRARY_PATH в Darwin/MacOS X), чтобы включить каталог, содержащий общие библиотеки blpapi3. Пользователям Windows может потребоваться установить переменную PATH в каталог, содержащий blpapi3_32.dll или blpapi3_64.dll. (Обратите внимание, что пользователи Windows с установленным программным обеспечением Bloomberg Terminal уже имеют версии этих библиотек в своем PATH.)
Итак, что я сделал (очень похоже на ответ Кенга Онна):
Извлечь файлы из blpapi_cpp_3.8.8.1.zip (или аналогичного)
Скопируйте blpapi3_32.dll из папки bin и вставьте ее в любое безопасное место
В моем случае я вставил его в C:\Python27\Lib\site-packages\blpapi
Добавьте этот маршрут в переменную среды Path
Нажмите "Пуск" / щелкните правой кнопкой мыши "Компьютер" / Свойства / Дополнительные параметры системы / Вкладка "Дополнительно" / Переменные среды
Дважды щелкните "Путь" в списке "Системные переменные".
Добавьте точку с запятой (;) и ваш путь, как показано ниже
Для меня: C:\Python27\Lib\site-packages\blpapi
Теперь это должно работать просто отлично для вас. Надеюсь, поможет.
У меня была та же проблема, которая была просто решена после обновления терминального приложения Bloomberg.