在 python 中为 bloomberg API 安装 blpapi 时出现错误

新手上路,请多包涵

我是 Bloomberg 终端用户,正在尝试通过 Python 让 API 工作。

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

我从 Bloomberg 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.

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

  • 将系统属性中“GP 的用户变量”和“系统变量”中的“路径”变量设置为: C:\blp\DAPI;C:\blp\DAPI\DDE;C:\blp\API\cpp;C:\blp\API\cpp\bin (DAPI 和 DDE 文件夹已经存在)
  • 添加了一个“BLPAPI_ROOT”变量: C:\blp\API\cpp 在系统属性的“用户变量”和“系统变量”中
  • 尝试将 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

还有其他想法吗?

原文由 pgibs 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
1 个回答

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

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

在此处输入图像描述

其他说明:

  1. 我建议您通过彭博终端下载 BloombergWindowsSDK,因为您还会获得 Python 代码。
  2. 无需使用系统路径,您只需复制并过去 blpapi3_64.dll blpapi3_32.dll 到与 python 代码所在的文件夹相同的文件夹。

原文由 Malick 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题