首页 > 编程语言 >(vs + qt )c++ 调用 python 问题处理

(vs + qt )c++ 调用 python 问题处理

时间:2022-11-07 12:22:09浏览次数:50  
标签:调用 qt python ImportModule SimpleString c++ sys vs PyImport

问题1.PyImport_ImportModule 返回总是null

PyObject* pModule = PyImport_ImportModule("test2");

//如果加载失败,则返回
if (!pModule) {
 std::cout << "Why Can't open python file!\n" << std::endl;
 PyErr_Print();
 return ;
}

解决:

1.设置当前目录,在调用PyImport_ImportModule  之前

调试时.py 脚本在.vcxproj同级,发布时 在exe同级

    PyRun_SimpleString("import sys");
    QString arg = "sys.path.append('./')";
    QByteArray ba = arg.toLatin1(); // must
    char* chArg = ba.data();
    PyRun_SimpleString(chArg);

想要设置其他目录的话:将./ 换成其他绝对目录,注意不能有空格


 

标签:调用,qt,python,ImportModule,SimpleString,c++,sys,vs,PyImport
From: https://www.cnblogs.com/zxg-blogs/p/16865519.html

相关文章

  • python冒泡排序
     理解:始终拿0位置的值,依次与后面位置的进行比较;比较时,谁小,谁就放在0位置  ......
  • 【C++高级编程】(一)C++速成
    本章内容:简要回顾C++语言最重要的部分及语法(主要讲述日常编程会遇到的最重要的C++部分,大佬快速浏览即可) 1.1C++基础知识C++是基于C语言的超集,但这两种语言并不一......
  • python爬虫,爬取51job 智联 58同城
    口182480171有源码和lun文词云图 ......
  • Python基础之迭代器
    一、什么是迭代器迭代是python中访问集合元素的一种非常强大的一种方式。迭代器是一个可以记住遍历位置的对象,因此不会像列表那样一次性全部生成,而是可以等到用的时候才生......
  • 【python学习】对于python装饰器的理解
    装饰器由于函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数。>>>defnow():...print('2015-3-25')...>>>f=now>>>f()2015-3-25......
  • Selenium3自动化测试实战--第3章 Python基础2
    3.6模组模组,一般称为类库或模块。分为标准模块和第三方库。3.6.1调用模块importtimefromtimeimporttime,sleepfromtimeimport*   #不用每个函数加tim......
  • python项目 打包成 exe 可执行文件
    pipinstallpyinstaller或者condainstallpyinstaller pyinstaller安装完成,显示界面如下:  运行到项目的主文件目录,执行:(-iapple.ico是使用apple图片作为exe......
  • Python工具箱系列(十一)
    上文讲的古典加密算法虽然很简单,但是在密码史上是使用最久的加密方式。历史上由于算力有限,加上有学识的人有限,所以直到概率论出现后,古典密码才开始破防。归根结底,英文单词......
  • python第二章pta习题总结
    chapter2一、选择填空判断部分1、C语言中,变量变的是内存空间中的值,不变的是地址;Python中,变量变的是地址,不变的是内存空间中的值。2、3、bool('False')的返回值是......
  • Python的分子模拟动态促进DF Theory理论对二进制硬盘系统的适用性
    作者:LawrenceXi这是一个偏学术的项目。流体力学界对过冷液体(supercooledliquid)的认知还不完善,我的项目利用Python的分子模拟,通过搭建一个binaryharddisksystem并对系统......