Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python 2.7 with Bloomberg API import blpapi failure

This is my development environment:

  • Windows 7 on a 64-bit HP Pavilion laptop
  • Python 2.7, 32-bit in folder C:\python27
  • Development environment is Eclipse with PyDev, but this doesn't seem to matter, because I get the same kind of failure whether I use Anaconda or Notepad++.
  • Python 2.7 Binary Installer for Windows - 32-bit v3.5.3 Having set the Environment PATH in Windows for Python, the BLPAPI does find and install into the C:\Python27 directory, creating C:\Python27\Lib\site-packages\blpapi.

Previous to my 32-bit installation of Python and BLPAPI I tried the 64-bit Python 2.7 with the 64-bit BLPAPI installation, but the results are the same for 64- or 32-bit.

My Python script fails on this one line: import blpapi

PyDev produces this error code:

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.
like image 363
TARKUS Avatar asked Jun 19 '14 22:06

TARKUS


People also ask

Can you use Python with Bloomberg?

Python is one of the most used languages at Bloomberg, with more than half a million Python files and over 100 million lines of code.

What is Blpapi?

BLPAPI PROGRAMMING INTERFACE Subscription services are used to receive data that changes frequently and/or at unpredictable intervals, for example equity pricing data or order-fill notifications.


2 Answers

I encountered a similar problem, and spent some time troubleshooting the issue with Bloomberg helpdesk. Here's what I learnt:

The ImportError is the result of Bloomberg not being able to find the "blpapi3_32.dll" DLL file. This DLL file can be located under the \bin or \lib folder of Bloomberg's C/C++ library, which is at the same location where you got your Python executable. So go download that library (v3.7.5.1 as of this writing), and have your system's "Path" environment variable include that location. This should resolve the issue.

PS you can access the PATH variable via Start > right-clicking "Computer" > Properties > Advanced System Settings > Advanced (tab) > Environment Variables > look for the "Path" variable under "System variables". Edit this variable to include the location of the DLL file, e.g. if the original Path variable is "C:\Python27\Lib\site-packages\PyQt4", then new Path variable should be "C:\Python27\Lib\site-packages\PyQt4;C:\blp\API\blpapi_cpp_3.7.5.1\bin"

like image 117
Keng Onn Avatar answered Oct 03 '22 15:10

Keng Onn


Note this article, from Bloomberg:

In order for python scripts to call Bloomberg API functions, the libraries distributed as part of the Bloomberg C++ SDK must be available to the Python interpreter. Step 3 of installation, above, provides system-wide installation of this library. Linux/Solaris/*nix users without system-wide installations must set the LD_LIBRARY_PATH (or DYLD_LIBRARY_PATH on Darwin/MacOS X) environment variable to include the directory containing the blpapi3 shared libraries. Windows users may need to set the PATH variable to the directory containing blpapi3_32.dll or blpapi3_64.dll. (Note that Windows users with the Bloomberg Terminal software installed already have versions of these libraries in their PATH.)

So what I did (very similarly to Keng Onn's answer) was:

  1. Download the C/C++ lib for Windows

  2. Extract files from blpapi_cpp_3.8.8.1.zip (or similar)

  3. Copy blpapi3_32.dll from the bin folder and paste it anywhere safe

In my case, I pasted it into C:\Python27\Lib\site-packages\blpapi

  1. Add this route to your Path environment variable

    • Click "Start" / Right-click "Computer" / Properties / Advanced System Settings / Advanced tab / Environment Variables

    • Double click "Path" under "System variables" list

    • Add a semicolon (;) and your path as seen below

For me: C:\Python27\Lib\site-packages\blpapi

enter image description here

Now it should work just fine for you. Hope it helps.

like image 28
Flavio Wuensche Avatar answered Oct 03 '22 15:10

Flavio Wuensche