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.)

Итак, что я сделал (очень похоже на ответ Кенга Онна):

  1. Загрузите C/C++ lib для Windows

  2. Извлечь файлы из blpapi_cpp_3.8.8.1.zip (или аналогичного)

  3. Скопируйте blpapi3_32.dll из папки bin и вставьте ее в любое безопасное место

В моем случае я вставил его в C:\Python27\Lib\site-packages\blpapi

  1. Добавьте этот маршрут в переменную среды Path

    • Нажмите "Пуск" / щелкните правой кнопкой мыши "Компьютер" / Свойства / Дополнительные параметры системы / Вкладка "Дополнительно" / Переменные среды

    • Дважды щелкните "Путь" в списке "Системные переменные".

    • Добавьте точку с запятой (;) и ваш путь, как показано ниже

Для меня: C:\Python27\Lib\site-packages\blpapi

введите описание изображения здесь

Теперь это должно работать просто отлично для вас. Надеюсь, поможет.

У меня была та же проблема, которая была просто решена после обновления терминального приложения Bloomberg.

Другие вопросы по тегам