1

C++ アプリケーション (32 ビット) に埋め込まれ、静的にリンクされた Python 2.7 で numpy にアクセスすると問題が発生します。アプリケーションの実行可能ファイルの下に、必要なすべての DLL を含む Python27 ディレクトリと共に python27.dll を配置しました。また、Python 2.7 と numpy (すべて 32 ビット) を別のフォルダー (C:\Python27) にインストールしました。アプリケーションを実行して numpy をインポートしようとすると、次のエラーが表示されます。

Traceback (most recent call last):
File "pytest", line 1, in <module>
    File "C:\Python27\lib\site-packages\numpy\__init__.py", line 137, in <module>
    import add_newdocs
    File "C:\Python27\lib\site-packages\numpy\add_newdocs.py", line 9, in <module>
    from numpy.lib import add_newdoc
    File "C:\Python27\lib\site-packages\numpy\lib\__init__.py", line 4, in <module>
    from type_check import *
    File "C:\Python27\lib\site-packages\numpy\lib\type_check.py", line 8, in <module>
    import numpy.core.numeric as _nx
    File "C:\Python27\lib\site-packages\numpy\core\__init__.py", line 5, in <module>
    import multiarray
ImportError: DLL load failed: The specified module could not be found.

アプリケーションフォルダーから python27.dll を削除すると、numpy をインポートできます。クライアントがPythonサードパーティライブラリをインポートしたいときに、python27.dllを手動で削除するようクライアントに依頼することはできません...それを修正する方法について誰かアイデアがありますか? このマルチアレイ モジュールはどうなっていますか?

4

1 に答える 1

2

わかりました、問題は解決しました。埋め込みアプリケーション フォルダの下にある python27.dll ファイルは、Python 2.7 リリースと同じである必要があります。日付を確認して、それらが同じであることを確認します。それらが同じでない場合、さまざまな問題が発生する可能性があります。

My Application Folder
    myApp.exe
    python27.dll  <-- must be the same as Python installed on your machine
    Python27 Folder
        DLL
        Libs
于 2013-01-11T17:44:50.497 に答える