C程序嵌入Python调用Py_Initialize失败,退出返回错误码-1073741191
问题原因与解决方案
你遇到的退出状态码-1073741191对应Windows系统的STATUS_DLL_INIT_FAILED错误,本质是Python核心DLL加载失败或者初始化出错,具体排查解决步骤如下:
- 修正头文件包含规则:在Visual Studio项目属性的「C/C++ -> 常规 -> 附加包含目录」中添加Anaconda3的include路径
C:\Users\name\anaconda3\include,然后把代码里的Python.h引入改为直接写#include <Python.h>,删掉原有的绝对路径包含逻辑。 - 匹配编译平台位数:确认你安装的Python是32位还是64位,C程序的编译目标平台(项目属性 -> 生成 -> 平台目标)要和Python的位数完全一致,位数不匹配会直接导致DLL加载失败。
- 修正链接配置:
- Release模式编译时,确认「链接器 -> 输入 -> 附加依赖项」里添加了
python38.lib,「链接器 -> 常规 -> 附加库目录」添加C:\Users\name\anaconda3\libs路径 - Debug模式编译时,需要链接
python38_d.lib,如果你的Anaconda环境没有预装Debug版Python库,建议直接用Release模式编译测试
- Release模式编译时,确认「链接器 -> 输入 -> 附加依赖项」里添加了
- 配置运行时DLL路径:把
C:\Users\name\anaconda3路径添加到系统环境变量PATH中,或者直接把C:\Users\name\anaconda3\python38.dll复制到你生成的可执行文件所在目录,避免程序启动时找不到Python核心DLL。 - 基础验证:可以先注释掉代码里的
Py_Initialize和Py_Finalize两行运行程序,若能正常输出dummy并正常退出,即可确认是Python运行时初始化相关问题,排除其他代码逻辑错误。
内容的提问来源于stack exchange,提问作者Bach Le Duy
相关产品推荐
相关产品推荐

