「DLLの読み込みに失敗しました:指定されたモジュールが見つかりませんでした」というメッセージが表示されます。NumpyプログラムでCythonを使用する場合

マークジョンソン

NumpyとCythonを使用してライブラリを構築しようとしています。.pyxファイルのコンパイルはスムーズに進みましたが、テストファイル内のファイルをテストできません。

「、1行目、import blank_cy#.pydの名前ImportError:DLLロードに失敗しました:指定されたモジュールが見つかりませんでした。

私は他の同様の問題を調べてみましたが、それでも理解できません。また、ここで必要な情報がわかりませんので、お問い合わせください。いくつかリストアップします。

  1. .pyxファイルはnumpyをnpおよびmathとしてインポートし、cimportsnumpyをnpとしてインポートします。
  2. コンパイルプロセスではエラーは発生しません。
  3. インポートに合わせてファイルの名前を変更しました
  4. インポートがなくても問題なく動作します。

どうもありがとうございます。

これが例です。

これはtest.pyxになります

import numpy
cimport numpy

print("Hello World");

setup.py:

from setuptools import setup
from Cython.Build import cythonize
import numpy

setup(ext_modules = cythonize("test.pyx"),include_dirs=[numpy.get_include()])

test.pydをインポートするテストファイル

import test
DavidW

インポートに合わせてファイルの名前を変更しました

これをしないでください!これがあなたの問題です。

my_modulePythonという名前の拡張機能をインポートするPyInit_my_moduleと、モジュール初期化関数として呼び出される関数が検索されます(Python 2の場合、関数名は少し異なります。モジュール名にASCII以外の文字が含まれている場合でも、同じ基本的な考え方が適用されます)。

モジュールの名前を変更したため、Cythonが作成した初期化関数の名前が一致しなくなり、すべてが壊れます。

pyxファイルに最終的に使用するモジュール名が含まれていることを確認してください。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ