概述
函数原型:PyRun_SimpleFile(FILE *fp, const char *filename)
官方解释:在Windows上,fp应该以二进制模式打开(例如fopen(文件名,“rb”
)。 否则,Python 可能无法正确处理 LF 行结尾的脚本文件。
事情经过:
一开始使用的易语言,打开文件 传递过去失败。包括尝试使用msvcrt.dll 和crtdll.dll 这些标准C语言库中导出的fopen函数,
一直都不行。后来决定使用C++来封装。易语言很多数据类型很难实现。自己也不想浪费太多时间,毕竟是要站在巨人的肩膀上嘛。
因为之前的失败,所以我上来就直接百度了。竟然有不少大佬也遇到了相同的问题,看了几个博客。结果是解决了。使用的_Py_fopen_obj。
后来仔细看了一下他们之间的区别,想到了官方文档中要求的是二进制方式打开。而大佬们博客的代码写的都是r+或者其他的,正常是rb才对。于是我就按照官方的方式试了一下。结果运行通过了。。。着实是为这几位大佬的粗心捏一把汗啊!
解决方案:
char szFile[] = "1.py";
FILE* fp = fopen(szFile, "rb");
PyRun_SimpleFile(fp, "1.py");
最后
以上就是友好飞鸟为你收集整理的C++嵌入python开发PyRun_SimpleFile函数的全部内容,希望文章能够帮你解决C++嵌入python开发PyRun_SimpleFile函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复