在Bloomberg API的python中为blpapi安装错误

pgi*_*ibs 6 python bloomberg

我是彭博终端用户,正在尝试通过Python使API正常工作。

我在Windows 7 64位计算机上安装了Python 3.7.0 64位,用于: C:\Users\gp\AppData\Local\Programs\Python\Python37

我从彭博API库下载了C / C ++支持的发行版(v3.8.18.1)。我将内容解压缩到C:\blp\API\cpp(我是终端用户,所以我已经拥有了,C:\blp\API并添加了一个新文件夹"CPP")。

然后,我按照页面底部所述通过pip安装了Python API:API库支持并收到一条Successfully installed blpapi-3.12.2消息。我注意到这已经安装到 C:\Users\gp\AppData\Local\Programs\Python\Python37\Lib\site-packages

然后在空闲状态下,导入blpapi并收到以下错误:

Traceback (most recent call last):
  File "C:\Users\gp\AppData\Local\Programs\Python\Python37\lib\site-packages\blpapi\internals.py", line 39, in swig_import_helper
return importlib.import_module(mname)
  File "C:\Users\gp\AppData\Local\Programs\Python\Python37\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 670, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 583, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 1043, in create_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
ImportError: DLL load failed: The specified procedure could not be found.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\gp\AppData\Local\Programs\Python\Python37\lib\site-packages\blpapi\__init__.py", line 4, in <module>
from .internals import CorrelationId
  File "C:\Users\gp\AppData\Local\Programs\Python\Python37\lib\site-packages\blpapi\internals.py", line 42, in <module>
_internals = swig_import_helper()
  File "C:\Users\gp\AppData\Local\Programs\Python\Python37\lib\site-packages\blpapi\internals.py", line 41, in swig_import_helper
return importlib.import_module('_internals')
  File "C:\Users\gp\AppData\Local\Programs\Python\Python37\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named '_internals'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
import blpapi
  File "C:\Users\gp\AppData\Local\Programs\Python\Python37\lib\site-packages\blpapi\__init__.py", line 9, in <module>
raise debug_load_error(error)
ImportError: No module named '_internals'

Mismatch between C++ and Python SDK libraries.

Python SDK version    3.12.1
Found C++ SDK version 3.11.6.1

Download and install the latest C++ SDK from:

    http://www.bloomberg.com/professional/api-library

If a recent version of the C++ SDK is already installed, please ensure that the
path to the library is added to PATH before entering the interpreter.
Run Code Online (Sandbox Code Playgroud)

我在此站点上搜索了答案,并尝试了以下操作:

  • 在系统属性的“ gp用户变量”和“系统变量”中都将“ path”变量设置为:C:\blp\DAPI;C:\blp\DAPI\DDE;C:\blp\API\cpp;C:\blp\API\cpp\bin(DAPI和DDE文件夹已经存在)
  • C:\blp\API\cpp在系统属性的“ gp用户变量”和“系统变量”中添加了“ BLPAPI_ROOT”变量:
  • 尝试将blpapi3_64.dll的副本从C:\blp\API\cpp\bin文件夹放入其中,C:\Users\gp\AppData\Local\Programs\Python\Python37\Lib\site-packages并尝试将其放置在子文件夹“ blpapi”中,并将这些位置添加到上述路径变量中,但仍无法正常工作。
  • 确保我已下载Visual Studio Build Tools 2017

还有其他想法吗?

Mal*_*ick 5

不匹配的问题来自以下事实:您需要下载SDK的3.12版本。当前,它对应于您可以在此处找到的“实验版本”(而不是受支持的版本!):

https://www.bloomberg.com/professional/support/api-library/

在此处输入图片说明

其他说明:

  1. 我建议您通过Bloomberg Terminal下载BloombergWindowsSDK,因为您还将获得python代码。
  2. 无需使用系统路径,您只需复制并粘贴blpapi3_64.dll blpapi3_32.dll到与python代码所在的文件夹相同的文件夹即可。


小智 0

我遇到了完全相同的错误并回复了我的错误消息。终于开始工作了。

  1. 卸载了 blpapi 和我的 Bloomberg 专业软件。
  2. 重新安装了最新的 Bloomberg Professional
  3. 像以前一样将 C++ 目录放入 C:\blp\api\cpp
  4. python -m pip install --index-url=https://bloomberg.bintray.com/pip/simple blpapi在我的 conda exec 中使用安装了 blpapi

不知怎的,这奏效了。我觉得自己真的很蠢,但又释然了。