我是 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 许可协议
不匹配的问题来自于您需要下载 3.12 版本的 SDK。目前它对应于您可以在此处找到的“实验版本”(而不是受支持的版本!):
https://www.bloomberg.com/professional/support/api-library/
其他说明:
blpapi3_64.dll
blpapi3_32.dll
到与 python 代码所在的文件夹相同的文件夹。