c++ 调用 python脚本, runtime error r6034

c++ 调用 python脚本, runtime error r6034

vs2015,c++调用python 脚本,PyImport_ImportModule的时候报了个run time error ,错误码R6034

最开始以为是环境的问题,仔细测试了发现,其他的python脚本没问题,就这个有问题。
错误提示说加载c库的时候出现的问题,那么一步步排查python脚本中import导入的库

使用PyRun_SimpleString("import os");这样的语句,挨个排查,
确实是加载caffe库的时候出的问题,

根据这个链接,https://blog.csdn.net/xingchenbingbuyu/article/details/72765612
重新编译了caffe库,问题依旧

不断debug,debug的时候查看输出记录,发现每次都是在加载_win32sysloader.pyd的时候出的问题
输出如下:
“callpython_test.exe”(Win32): 已加载“D:\Anaconda2\Lib\site-packages\win32\_win32sysloader.pyd”。无法查找或打开 PDB 文件。
“callpython_test.exe”(Win32): 已加载“C:\Windows\System32\pywintypes27.dll”。无法查找或打开 PDB 文件。
“callpython_test.exe”(Win32): 已加载“D:\Anaconda2\msvcr90.dll”。无法查找或打开 PDB 文件。
“callpython_test.exe”(Win32): 已加载“C:\Windows\System32\uxtheme.dll”。无法查找或打开 PDB 文件。
“callpython_test.exe”(Win32): 已加载“D:\Program Files (x86)\kingsoft\kingsoft antivirus\kwsui64.dll”。无法查找或打开 PDB 文件。
“callpython_test.exe”(Win32): 已加载“C:\Windows\System32\psapi.dll”。无法查找或打开 PDB 文件。
“callpython_test.exe”(Win32): 已加载“C:\Windows\System32\dwmapi.dll”。无法查找或打开 PDB 文件。

搜索发现,_win32sysloader.pyd属于pywintypes库,单独加载试试:
PyRun_SimpleString("import pywintypes");
一样的错误,确认是属于pywintypes的库的问题

重新安装pywintypes库,问题依旧,
pywintypes下载地址:https://jaist.dl.sourceforge.net/project/pywin32/pywin32/Build 218/pywin32-218.win-amd64-py2.7.exe

google了下,终于找到解决方法:
https://stackoverflow.com/questions/14552348/runtime-error-r6034-in-embedded-python-application

问题原因:
我用的是anaconda2,python2.7,64位版本,里面自带了msvcr90.dll, 与系统的重复加载了,我本机安装的有vs2008
所以,异常了
解决方法:
把anaconda2目录下的2处msvcr90.dll重命名成别的就行了,路径是通过process explorer查找到的

猜你喜欢

转载自blog.csdn.net/ybn187/article/details/81127560
今日推荐