在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。因此,它似乎试图实际加载模块
Windows上Python编译的模块具有扩展名
.pyd
,而不是.dll
。如果您使用setup.py构建该文件,则将使用正确的名称构建该文件。然而,您自己构建了它,并给了它一个Python无法识别为模块的名称在build命令方面:必须将其与libpython链接。你看起来不会这么做的。如果模块没有针对其所有依赖项进行链接,那么您报告的错误肯定会出现
我知道您不想使用setup.py,但是我至少会使用它一次,以查看它的功能和工作情况。然后,您将至少拥有一个可以使用一组工作选项进行复制的命令
相关问题 更多 >
编程相关推荐