web-dev-qa-db-ja.com

Bloomberg APIのpythonでのblpapiのインストールエラー

私はブルームバーグのターミナルユーザーであり、Pythonを介してAPIを動作させようとしています。

私はPython 3.7.0 64ビットコンピューターのWindows 7 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"を追加しました)。

次に、Pythonこのページの最後に記載されているpipを介してPython :: 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のユーザー変数」と「システム変数」の両方の「パス」変数を​​C:\blp\DAPI;C:\blp\DAPI\DDE;C:\blp\API\cpp;C:\blp\API\cpp\binに設定します(DAPIおよびDDEフォルダーは既に存在していました)
  • システムプロパティの「gpのユーザー変数」と「システム変数」にC:\blp\API\cppの 'BLPAPI_ROOT'変数を追加しました
  • C:\blp\API\cpp\binフォルダーからC:\Users\gp\AppData\Local\Programs\Python\Python37\Lib\site-packagesにblpapi3_64.dllのコピーを配置しようとし、サブフォルダー「blpapi」に配置しようとしましたが、上記のパス変数にそれらの場所を追加しましたが、まだ機能しませんでした。
  • visual Studio Build Tools 2017をダウンロードしたことを確認しました

他のアイデアはありますか?

6
pgibs

不一致の問題は、SDKバージョン3.12をダウンロードする必要があるという事実に起因しています。現在、これは「実験リリース」に対応しています(サポートされていないリリースです!):

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

enter image description here

その他のコメント:

  1. pythonコードも取得するため、ブルームバーグターミナルからブルームバーグWindowsSDKをダウンロードすることをお勧めします。
  2. システムパスを操作する必要はありません。コピーしてblpapi3_64.dllblpapi3_32.dllは、pythonコードが配置されているフォルダーと同じフォルダーに。
5
Malick

問題は、C:\ blp\DAPIとcppフォルダに同じライブラリ(DLLファイル)がインストールされていることです。ただし、これらのファイルのバージョンは同じではないため、エラーメッセージが表示されます。簡単な修正方法は、c:\ lib\blpapi_cpp_3.12.2.1\libフォルダーからすべてのライブラリーをC:\ blp\DAPIにコピーして貼り付けることです。これにより問題が修正されます。

3
Claude

Windows 10でPython 3.7を使用して解決したソリューション:

1/WAPI<GO>またはhttps://www.bloomberg.com/professional/support/api-library/からブルームバーグの実験的なC++ 3.12 SDKをダウンロードします

2/Extract、libフォルダを探します。blpapi3_32.dllblpapi3_32.libblpapi3_64.dllblpapi3_64.libの4つのファイルがあります。

3/Windowsシェルでwhere blpapi3_32.dllと入力し、これらの場所をすべて上記の新しいファイルに置き換えました。私の場合、少なくともC:\blp\DAPIおよびC:\Users\MyName\AppData\Local\Continuum\anaconda3\Library\bin\blpapi3_32.dllでした(これらのファイルはデスクトップアプリケーションで使用されるため、これらのファイルをオーバーライドする前にブルームバーグデスクトップを閉じる必要があります)

3
alex314159

@Malickが答えで指摘しているように、現在、ブルームバーグは https://www.bloomberg.com/professional/support/api-library/ のバージョン管理に不一致があります。ここで、blpapiの安定バージョンはpythonには、C++ SDKの実験バージョンが必要です(つまり、v3.12.2.1 の代わりに v3.8.18.1)。これは、端末のWAPIを介してリリースしているものと矛盾しているようです。

希望するプラットフォーム用のビルドを見つけることができ、pythonバージョンの場合、condaを使用することもできます。別のオプションは https://anaconda.org/ via anacoda search blpapi

$ anaconda search blpapi
Using Anaconda API: https://api.anaconda.org
Packages:
     Name                      |  Version | Package Types   | Platforms       | Builds    
     ------------------------- |   ------ | --------------- | --------------- | ----------
     conda-forge/blpapi        |    3.9.2 | conda           | linux-64, win-64, osx-64 | py36he980bc4_0, py36_blpapicpp3.8.18.1_1, py36_blpapicpp3.8.1.1_1, py27h2d50403_0, py27_blpapicpp3.8.18.1_1, py27hdc96acc_0, py36h2d50403_0, py27_blpapicpp3.8.1.1_1
                                          : Python SDK for Bloomberg BLPAPI (<=3.9)
     dsm/blpapi                |    3.9.0 | conda           | linux-64, win-64 | py36_0, py27_0
     josh/blpapi               |    3.5.5 | conda           | linux-64        | py27_0    
     macinv/blpapi             |    3.9.0 | conda           | linux-64, win-64 | py36_0, py27_0, py35_0, py34_0
     mbonix/blpapi             |    3.9.0 | conda           | win-64          | py36_0    
                                          : Bloomberg's Open Market Data Initiative is part of the company's ongoing effort to foster open solutions for the financial services industry.
     p-vg/blpapi               |    3.9.2 | conda           | linux-64, win-64 | py36h6538335_0, py27hc56fc5f_0, py36hf484d3e_0, py27hf484d3e_0
                                          : interface for Bloomberg API services using the Python programming language
Found 6 packages

Run 'anaconda show <USER/PACKAGE>' to get installation details
1
mgilbert

環境パスにあるフォルダーを確認します。システムパスに2つのblpフォルダーがある場合があります。つまり、両方ともC:\blp\DAPIおよびC:\BloombergWindowsSDK\C++API\v3.12.3.1\lib、最新のblpapi3_32.dllおよびblpapi3_64.dll両方のファイル。

1
Haohan Li

Windows上の3.7では、3.31.1バージョンのC\C++ライブラリを使用する必要がありました。実験的とマークされていましたが、ブルームバーグでしたが、正常にインポートできました。

1
jmatthew007

この問題を解決したことはありますか?私は同じ問題を抱えています。 Windows 10で実行します。Anacondaを使用します。

また、メッセージを受け取りました:

Successfully installed blpapi-3.12.2

しかし、blpapiをインポートする場合:

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.
0
user1455613

私はここで他の人と同様にこれらの問題に苦労しました。 Python 3.7で最新のAnaconda3 5.3.1を実行していました。私は次のことをしました:

  1. anacondaを完全にアンインストールします(これは困難であり、anaconda-cleanを試した後でもほとんど手動で行う必要がありました)

  2. bloombergをアンインストールして再インストールする

  3. Python.orgからpython 3.6(32ビット)をインストールしました

  4. インストールされたAnaconda最新バージョン64ビット

  5. これらの問題を抱えていない別のPCでブルームバーグに必要なパッケージを見つけました。しかし、私もここでそれらを見つけました: https://bloomberg.bintray.com/pip/simple/blpapi/

  6. 通常のコマンドプロンプト:pip install c:\YOURPATH\blpapi-3.9.1-cp36-cp36m-win32.whl

  7. 動作したことを確認します-ptyhonのimport blpapiは動作しましたが、Jupyter nbでは動作しません

  8. Anacondaプロンプトにblpapi-3.9.1-cp36-cp36m-win_AMD64.whlをインストールしようとしましたが、うまくいきませんでした。 Conda Promptでconda install python=3.6.3を実行してPY3.7から3.6.3にダウングレードしました

  9. 今condaプロンプト:pip install c:\YOURPATH\blpapi-3.9.1-cp36-cp36m-win_AMD64.whlでインストール済み。

PATH内の環境変数に関するメモ-Bloombergに関連する通常のC:\blp\DAPI;C:\blp\DAPI\DDE以外には何もありません。
必要なdllは既にそこにあります(私は信じています)。
PATHで行ったことの1つはC:\Users\YOUR\AppData\Local\Programs\Python\Python36-32\Scripts\;C:\Users\YOUR\AppData\Local\Programs\Python\Python36-32で、これは実際にpython 3.6をインストールしたときにPATHボックスをチェックすることで実行されました。

ここには多くの冗長または不必要な手順があります。最も重要な点は、Bloombergが最新リリースで提供するC++ファイルに問題があることです。これらの古いファイルは機能しているようです。ここで重要なのは、明らかにPY 3.6にダウングレードする必要があるということです。私の例の手順3〜6は、最初の2つがなくても機能すると思います。

0
GoPackGo

実際には、エラーメッセージの最後に手がかりが隠されていますが、完全に明確ではありませんでした。

Bloomberg C++ライブラリもダウンロードする必要があります。フォルダーに解凍して、c:\lib\blpapi_cpp_3.12.2.1

あなたがする必要があるのはc:\lib\blpapi_cpp_3.12.2.1\libPATH環境変数に入れます。重要なのは、libサブフォルダーを含めることです。

これにより、python 3.7。

0
WillZ

まったく同じエラーが発生し、エラーメッセージが返されました。ようやく機能しました。

  1. BlpapiとBloombergプロフェッショナルソフトウェアをアンインストールしました。
  2. 最新のブルームバーグプロフェッショナルを再インストールしました
  3. 以前のようにC++ディレクトリをC:\ blp\api\cppにドロップしました
  4. 私のconda execで_python -m pip install --index-url=https://bloomberg.bintray.com/pip/simple blpapi_を使用してblpapiをインストールしました

どういうわけかそれは働いた。私は本当に愚かだと感じますが、ホッとしました。

0
P D

My Pythonバージョンは3.7.1 [MSC v.1915 64ビット(AMD64)]、Windows7 64ビットです。

新しいPCに移行したところ、同じ2つのエラーが発生しました。

"ImportError: '_internals'というモジュールはありません。C++とPython SDKライブラリの間で不一致です。

Python SDKバージョン3.12.1が見つかりましたC++ SDKバージョン3.11.6.1 "

私のために働いたのは、alex314159に非常に似ていますが、PATH変数で時間を無駄にする必要はありません。

  1. すべてのアプリケーションを閉じます。
  2. 最初に、エラーと元の投稿で提供されているリンクから最新のC++ SDK(私の場合は2019年4月、3.12.3.1)をダウンロードしてインストールします。
  3. 次に、WindowswでCMDを使用して、「where blpapi3_64.dll」と入力します。これは、私にとって「C:\ Program Files(x86)\ blp\DAPI」を返しました。
  4. Step2のblpapi3_32.dllとblpapi3.64.dllをStep3のフォルダーにコピーします。
  5. Jupyter Notebookを起動し、 'import blpapi'を実行します...そして最後に機能しました!

サイドノートとして、元のエラーが「ModuleNotFoundError: '_internals」という名前のモジュールではなかった理由を知りたい

私のサイトパッケージでblpapiフォルダーを開くと、internals.pyと_internals.cp37-win-arnd64.pydというモジュールがありますか?

0
Fed