Я получаю сообщение «Ошибка загрузки DLL: не удалось найти указанный модуль». при использовании Cython с программой Numpy - PullRequest
1 голос
/ 02 августа 2020

Я пытаюсь создать библиотеку, используя Numpy и Cython. Компиляция файла .pyx прошла гладко, я не могу проверить файлы в тестовом файле.

Он просто говорит ", строка 1, в import blank_cy # Имя файла .pyd ImportError: загрузка DLL сбой: указанный модуль не может быть найден.

Я попытался найти другие похожие проблемы, но все еще не могу понять. Кроме того, я не уверен, какая информация мне нужна здесь, поэтому спросите. Я просто перечислю некоторые вещи.

  1. Файл .pyx импортирует numpy как np и math и cimports numpy как np.
  2. Процесс компиляции не производит любые ошибки.
  3. Я переименовал файл, чтобы он соответствовал моему импорту
  4. Без импорта он работает нормально.

Большое вам спасибо.

Вот пример.

Это будет test.pyx

import numpy
cimport numpy

print("Hello World");

The 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

1 Ответ

0 голосов
/ 03 августа 2020

Я переименовал файл, чтобы он соответствовал моему импорту

Не делайте этого! Это ваша проблема.

Когда он импортирует расширение с именем my_module Python, ищет функцию с именем PyInit_my_module (имя функции немного отличается от Python 2, или если имя модуля имеет символы, отличные от ascii, но применяется та же самая идея basi c), что и функция инициализации модуля.

Поскольку вы переименовали свой модуль, имя функции инициализации, созданной Cython, больше не совпадает, и, следовательно, все ломается.

Просто убедитесь, что ваши файлы pyx имеют имя модуля, которое вы в конечном итоге хотите использовать.

...