16

Windows 7 64ビットでPython 2.7でMpi4py 1.3を使用しようとしています。ここからOpenMPI 1.6.3 を含むインストール可能なバージョンをダウンロードしたので、インストール ディレクトリ (*/Python27\Lib\site-packages\mpi4py\lib) に次のライブラリが存在します: libmpi.lib、libmpi_cxx.lib、libopen-pal.lib 、および libopen-rte.lib。それをインポートしようとすると、私のコードでは:

from mpi4py import MPI

次のエラーが返されます。

ImportError: DLL の読み込みに失敗しました: 指定されたモジュールが見つかりませんでした。

bove lib ファイルを */Python27\Lib\site-packages\mpi4py\MPI.pyd と一緒に、さらには Windows/System32 にコピーしようとしましたが、うまくいきませんでした。欠落している DLL とエラーの修正方法について、ご協力をお願いします。

4

7 に答える 7

9

問題を解決しました。私の環境は Win10、python 3.6.6、pycharm 2019.2 で、annaconda ビジュアル環境にリンクされています。
1. MS MPIをダウンロードし、.mis と SDK の両方をインストールします。
2. 環境変数の設定
コントロール パネル --> 詳細システム設定 --> 環境変数 -->
(1) C:\Program Files (x86)\Microsoft SDKs\MPI および
(2) C:\Program Files\Microsoftを追加MPI\Bin. 私のパスがあります。ここでパスを変更する必要があるかもしれません。
3. MS Visual Studio をインストールします。コミュニティ バージョンで十分です
。 4. Anaconda プロンプトで、conda install -c intel mpi4pyを使用します。私はほとんどの返信を読みましたが、このように言及されていません。

于 2019-09-04T04:54:40.707 に答える
3

次のコードを使用するか、 37 行目あたりsys.prefix\lib\site-packages\mpi4py\bin\python-mpi.exeに追加します。sys.prefix\lib\site-packages\mpi4py\__init__.py

def _init_openmpi():
    """Pre-load libmpi.dll and register OpenMPI distribution."""
    import os
    import ctypes
    if os.name != 'nt' or 'OPENMPI_HOME' in os.environ:
        return
    try:
        openmpi_home = os.path.abspath(os.path.dirname(__file__))
        openmpi_bin = os.path.join(openmpi_home, 'bin')
        os.environ['OPENMPI_HOME'] = openmpi_home
        os.environ['PATH'] = ';'.join((openmpi_bin, os.environ['PATH']))
        ctypes.cdll.LoadLibrary(os.path.join(openmpi_bin, 'libmpi.dll'))
    except Exception:
        pass

_init_openmpi()
于 2013-01-08T15:23:49.620 に答える
1

https://github.com/Microsoft/Microsoft-MPIから最新バージョンの MSMPI をインストールしてエラーを修正しました

于 2021-03-26T10:21:18.140 に答える