最近在做一个项目,开发环境用的是QT+C++。项目中有一些算法使用python实现需要混合编译并发布。

准备工作:

1.安装python

2.安装QT

 

一:编译调试运行

python代码:

# -*- coding: cp936 -*-
#定义hello函数,这个函数的功能是输出“hello world!”
def hello():
    print("hello world!")

QT/C++调用

1. pro文件增加python目录

QT调用Python脚本运行并打包发布

 

 

 2. cpp文件调用

QT调用Python脚本运行并打包发布

 

 

 3.将相关的文件拷贝只运行目录

QT调用Python脚本运行并打包发布

 

 

 QT调用Python脚本运行并打包发布

 

 

 二:打包发布

1.将python相关文件打包至一个文件夹,这里以python_3.8_64文件夹为例:

  1.1打开python安装目录如下:

        QT调用Python脚本运行并打包发布

  1.2 复制文件夹内的所有.dll文件,DLLs,include,Lib,libs 文件夹到第一步新建的python_3.8_64文件夹内,复制好后如下图:

           QT调用Python脚本运行并打包发布

 

2. 将python_3.8_64复制到运行文件夹:

     QT调用Python脚本运行并打包发布

 

3. 修改程序使用自定义的python解释器:

     QT调用Python脚本运行并打包发布

 

 

 4. 发布QT可执行程序使用windeployqt.

 5.将相关文件拷贝至发布文件夹:

   QT调用Python脚本运行并打包发布

 

 

 三:进阶使用

        python脚本中导入了其他包情况下,需要将相应的包拷贝复制至运行目录:

       3.1 代码修改:

         搜索目录增加当前目录

         QT调用Python脚本运行并打包发布

    3.2 相关的包放置到运行目录:

       QT调用Python脚本运行并打包发布

 

 QT调用Python脚本运行并打包发布

 

 

 参考:

 https://blog.csdn.net/weixin_31616803/article/details/114976358?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242

 

相关文章:

  • 2022-12-23
  • 2022-02-11
  • 2021-06-26
  • 2021-09-21
  • 2021-08-09
  • 2021-11-21
  • 2021-07-08
  • 2021-05-09
猜你喜欢
  • 2021-12-03
  • 2021-12-09
  • 2021-11-29
  • 2021-05-15
  • 2021-08-06
相关资源
相似解决方案