Python 我得到了一个“答案”;DLL加载失败:找不到指定的模块;将Cython与Numpy程序一起使用时
我正试图用Numpy和Cython建立一个图书馆。虽然编译.pyx文件进展顺利,但我无法在测试文件中测试这些文件 它只是说,“第1行,在 导入blank_cy#该.pyd的名称 ImportError:DLL加载失败:找不到指定的模块 我已经试过研究其他类似的问题,但我仍然无法解决。另外,我不确定我需要什么信息,所以请询问。我将列出一些事情Python 我得到了一个“答案”;DLL加载失败:找不到指定的模块;将Cython与Numpy程序一起使用时,python,cython,Python,Cython,我正试图用Numpy和Cython建立一个图书馆。虽然编译.pyx文件进展顺利,但我无法在测试文件中测试这些文件 它只是说,“第1行,在 导入blank_cy#该.pyd的名称 ImportError:DLL加载失败:找不到指定的模块 我已经试过研究其他类似的问题,但我仍然无法解决。另外,我不确定我需要什么信息,所以请询问。我将列出一些事情 .pyx文件将numpy导入为np,将math和cimports numpy导入为np 编译过程不会产生任何错误 我重命名了文件以匹配导入 如果没有进口,它
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
我重命名了文件以匹配导入
别这样!这是你的问题
当它导入名为my_module
Python的扩展时,会查找名为PyInit\u my_module
(Python 2的函数名稍有不同,或者如果模块名有非ascii字符,但基本思想相同)的函数作为模块初始化函数
由于您重命名了模块,Cython创建的初始化函数的名称不再匹配,因此整个过程中断
只需确保pyx文件具有最终要使用的模块名
我重命名了文件以匹配导入
别这样!这是你的问题
当它导入名为my_module
Python的扩展时,会查找名为PyInit\u my_module
(Python 2的函数名稍有不同,或者如果模块名有非ascii字符,但基本思想相同)的函数作为模块初始化函数
由于您重命名了模块,Cython创建的初始化函数的名称不再匹配,因此整个过程中断
只需确保pyx文件具有最终要使用的模块名称。您需要创建一个,否则很难帮助。请参见您需要创建一个,否则很难帮助。请参见当我运行setup.py时,它会创建一个名为pizza_hut.cp38-win_amd64.pyd的文件。我删除了中间部分,所以不要这样做?如果我不这样做删除它,我有一个不同的问题。它告诉我不存在具有该名称的模块。(注意:我将名称更改为pizza_-hut以避免与本机测试模块混淆)。删除
cp38-win_amd64
不应停止模块导入工作(但是-删除它没有意义)。重命名第一位(pizza_-hut
)会破坏导入。哦,我的意思是我同时更改了两个.pyx文件。因此,当我运行安装程序时,它会创建一个名为pizza_hut.py的文件。它会创建一个名为pizza_hut.cp38-win_amd64.pyd的文件。我删除了中间部分,所以不要这样做?如果我不删除它,我会遇到另一个问题。它告诉我没有具有该名称的模块。(注意:我将名称更改为pizza_-hut以避免与本机测试模块混淆)。删除cp38-win_amd64
不应停止模块导入工作(但是-删除它没有意义)。重命名第一位(pizza_-hut
)会破坏导入。哦,我的意思是我同时更改了这两个.pyx文件。因此,它创建了一个名为pizza_hut的文件