我是一个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.
我搜索了此网站上的答案,并尝试了以下操作:
C:\blp\DAPI;C:\blp\DAPI\DDE;C:\blp\API\cpp;C:\blp\API\cpp\bin
(DAPI和DDE文件夹已经存在)C:\blp\API\cpp
C:\blp\API\cpp\bin
文件夹放置到C:\Users\gp\AppData\Local\Programs\Python\Python37\Lib\site-packages
中,并尝试将其放置在子文件夹“blpapi”中,并将这些位置添加到上述路径变量中,但仍然无法工作。还有其他想法吗?
问题是,您在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/
其他备注:
blpapi3_64.dll
blpapi3_32.dll
与python代码所在的文件夹相同。在Windows10上使用Python3.7的解决方案:
< P > 1 /从L{< CD1> }或“{2/Extract,查找lib文件夹,有四个文件,
blpapi3_32.dll
,blpapi3_32.lib
,blpapi3_64.dll
,blpapi3_64.lib
。3/在windows shell中,我键入了
where blpapi3_32.dll
,并用上面的新文件替换了所有这些位置。在我的例子中,至少是C:\blp\DAPI
和C:\Users\MyName\AppData\Local\Continuum\anaconda3\Library\bin\blpapi3_32.dll
(在覆盖桌面应用程序使用的这些文件之前,您需要关闭Bloomberg桌面)相关问题 更多 >
编程相关推荐