python for bloomberg API中blpapi的安装错误

2024-06-07 14:48:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个Bloomberg终端用户,正试图通过Python让API工作。

我已经在我的Windows7 64位计算机上安装了Python3.7.064位:C:\Users\gp\AppData\Local\Programs\Python\Python37

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

然后,我通过pip安装了Python API,如本页底部所述:API Library Support,并收到了一条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的用户变量”和“系统变量”中的“path”变量设置为:C:\blp\DAPI;C:\blp\DAPI\DDE;C:\blp\API\cpp;C:\blp\API\cpp\bin(DAPI和DDE文件夹已经存在)
  • 在“gp的用户变量”和“系统属性”中添加了一个'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生成工具2017

还有其他想法吗?


Tags: inimportapilocallineimportlibbootstrapusers
3条回答

问题是,您在C:\ blp\DAPI和cpp文件夹中安装了相同的库(DLL文件)。但是,这些文件的版本不同,这就是出现错误消息的原因。一个简单的修复方法是将c:\ lib\blpapi_cpp_3.12.2.1\lib文件夹中的所有库复制并粘贴到c:\ blp\DAPI中。这就解决了问题。

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

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

enter image description here

其他备注:

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

在Windows10上使用Python3.7的解决方案:

< P > 1 /从L{< CD1> }或“{}/< P>”下载彭博实验C++ 3.12 SDK

2/Extract,查找lib文件夹,有四个文件,blpapi3_32.dllblpapi3_32.libblpapi3_64.dllblpapi3_64.lib

3/在windows shell中,我键入了where blpapi3_32.dll,并用上面的新文件替换了所有这些位置。在我的例子中,至少是C:\blp\DAPIC:\Users\MyName\AppData\Local\Continuum\anaconda3\Library\bin\blpapi3_32.dll(在覆盖桌面应用程序使用的这些文件之前,您需要关闭Bloomberg桌面)

相关问题 更多 >

    热门问题