Python在导入简单C扩展模块时出错

2024-05-20 15:47:18 发布

您现在位置:Python中文网/ 问答频道 /正文

在windows上,我构建了一个非常简单的“hello world”C扩展名(来自此站点的hello.C文件https://gist.github.com/physacco/2e1b52415f3a964ad2a542a99bebed8f)。使用VS2015,我成功获得hello.dll。问题是我不知道如何导入此文件/模块

在pythonshell(python3.7)中,我确保我与hello.dll位于同一文件夹中。我还确保sys.path()包含文件夹路径。但是当我写“import hello”时,我得到一个错误“ModuleNotFoundError:没有名为“hello”的模块”

有人知道怎么回事吗?这是一个非常简单的设置吗

更新: 尝试导入不存在的模块时,会报告ModuleNotFoundError。将hello.dll重命名为hello.pyd后,将返回ImportError。因此,它似乎试图实际加载模块


Tags: 模块文件httpsgithub文件夹comhelloworld
1条回答
网友
1楼 · 发布于 2024-05-20 15:47:18

Windows上Python编译的模块具有扩展名.pyd,而不是.dll。如果您使用setup.py构建该文件,则将使用正确的名称构建该文件。然而,您自己构建了它,并给了它一个Python无法识别为模块的名称


在build命令方面:必须将其与libpython链接。你看起来不会这么做的。如果模块没有针对其所有依赖项进行链接,那么您报告的错误肯定会出现

我知道您不想使用setup.py,但是我至少会使用它一次,以查看它的功能和工作情况。然后,您将至少拥有一个可以使用一组工作选项进行复制的命令

相关问题 更多 >