Python 2.7 导入 Bloomberg API blpapi 失败

7 投票
3 回答
13646 浏览
提问于 2025-04-18 10:26

这是我的开发环境:

  • 在一台64位的HP Pavilion笔记本上运行Windows 7
  • Python 2.7,32位,安装在C:\python27文件夹里
  • 我的开发环境是Eclipse加上PyDev,不过这似乎没什么关系,因为无论我用Anaconda还是Notepad++,都会出现同样的错误。
  • Windows的Python 2.7 32位二进制安装程序 - 版本3.5.3 我在Windows中设置了Python的环境变量PATH,BLPAPI能够找到并安装到C:\Python27目录下,创建了C:\Python27\Lib\site-packages\blpapi

在安装32位的Python和BLPAPI之前,我尝试过64位的Python 2.7和64位的BLPAPI,但无论是64位还是32位,结果都是一样的。

我的Python脚本在这一行出错:import blpapi

PyDev给出了这个错误代码:

Traceback (most recent call last):
  File "C:\Users\Greg\workspace2\Bloomberg\src\TestImport.py", line 1, in <module>
    import blpapi
  File "C:\Python27\lib\site-packages\blpapi\__init__.py", line 5, in <module>
    from .internals import CorrelationId
  File "C:\Python27\lib\site-packages\blpapi\internals.py", line 50, in <module>
    _internals = swig_import_helper()
  File "C:\Python27\lib\site-packages\blpapi\internals.py", line 46, in swig_import_helper
_mod = imp.load_module('_internals', fp, pathname, description)
ImportError: DLL load failed: The specified module could not be found.

3 个回答

0

我也遇到过同样的问题,后来通过更新Bloomberg终端应用程序就简单解决了。

7

注意这篇来自彭博社的文章:

为了让Python脚本能够调用彭博API的功能,彭博C++ SDK中提供的库必须对Python解释器可用。上面提到的安装步骤3会在系统范围内安装这个库。如果你是Linux/Solaris/*nix用户,且没有进行系统范围的安装,你需要设置LD_LIBRARY_PATH(在Darwin/MacOS X上是DYLD_LIBRARY_PATH)这个环境变量,包含blpapi3共享库所在的目录。Windows用户可能需要将PATH变量设置为包含blpapi3_32.dll或blpapi3_64.dll的目录。(注意,已经安装了彭博终端软件的Windows用户,PATH中已经有这些库的版本。)

我所做的事情(和Keng Onn的回答非常相似)是:

  1. 下载Windows的C/C++库

  2. 从blpapi_cpp_3.8.8.1.zip(或类似文件)中解压文件

  3. 从bin文件夹中复制blpapi3_32.dll,并粘贴到一个安全的地方

在我的情况下,我将它粘贴到了C:\Python27\Lib\site-packages\blpapi

  1. 将这个路径添加到你的Path环境变量中

    • 点击“开始” / 右键点击“计算机” / 属性 / 高级系统设置 / 高级选项卡 / 环境变量

    • 在“系统变量”列表中双击“Path”

    • 添加一个分号(;)和你的路径,如下所示

对我来说是:C:\Python27\Lib\site-packages\blpapi

在此输入图片描述

现在应该可以正常工作了。希望这对你有帮助。

14

我遇到了类似的问题,花了一些时间和彭博的客服一起排查。以下是我学到的内容:

这个导入错误(ImportError)是因为彭博找不到“blpapi3_32.dll”这个DLL文件。这个DLL文件通常在彭博的C/C++库的\bin或\lib文件夹下,和你安装Python的地方是同一个位置。所以你需要去下载这个库(截至目前是v3.7.5.1),并确保你的系统“Path”环境变量包含这个位置。这样应该就能解决问题了。

另外,你可以通过以下步骤访问PATH变量:点击开始菜单 > 右键点击“计算机” > 选择属性 > 高级系统设置 > 高级(选项卡) > 环境变量 > 在“系统变量”中找到“Path”变量。编辑这个变量,把DLL文件的位置加进去,比如如果原来的Path变量是“C:\Python27\Lib\site-packages\PyQt4”,那么新的Path变量应该是“C:\Python27\Lib\site-packages\PyQt4;C:\blp\API\blpapi_cpp_3.7.5.1\bin”。

撰写回答