感谢:https://wwwblogs/xia-weiwen/p/7932379.html
http://www.jb51/article/91611.htm
https://blog.csdn/flyfrommath/article/details/52999100
环境:ubuntu Linux 16.04
Qt creator community 5.5.1
python3.5
1.外部工具法
a. 打开Qt creator,在上方的菜单栏中找到:工具——选项,点击进入。
b. 选择:环境——添加目录,目录名字可以自己取,这里我选择RunPy2作为目录名。回车确定。
c. 添加工具:工具名称亦可自取,这里我选择Python3.5.
d. 配置外部工具:
说明:可以随意书写;
执行档:即完成执行python文件的外部工具,这里由于我安装了PyCharm,就直接选择Pycharm中的python编译器为外部工具,可以直接在PyCharm中安装第三方库,比较方便。当然可以用Linux自带的Python解释器:/usr/bin/python3.5.但是安装第三方库就比较麻烦。这里可以参考:http://www.jb51/article/91611.htm 和https://blog.csdn/flyfrommath/article/details/52999100。
参数:按照图示即可。%{CurrentDocument:FilePath}
工作目录:图示即可。%{CurrentDocument:Path}
Environment:QT_LOGGING_TO_CONSOLE = 1
e. 右击项目名称——添加新文件,选择添加Python File,名称为test112,回车确定。
f. 编辑test112.py如下:
g. 测试运行:工具——外部——RunPy——python3.5,在概要信息中输出结果。
2.Python官方提供的与C++交互编程方法。
a. 配置路径和LIBS:网上大多数提供的是Python2.7的配置方法,由于我入门Python时学的是Python3,所以在此将Python3的路径和LIBS用于Qt中。在Python官网,可以找到如下段落:该文章提供了配置INCLUDEPATH和LIBS的方法。
b. 针对不同的环境可能配置方法不同,这里介绍一种能够找到自己电脑最适宜的配置方法。
- sudo updatedb
- locate python3.5-config #得到python3.5-config的绝对路径,我的是:/usr/bin/python3.5-config
- 如果找不到python3.5-config,则是因为没有安装python3.5-dev,sudo apt install python3.5-dev即可
- 打开终端输入:/usr/bin/python3.5-config --cflags #得到INCLUDEPATH的内容
- 打开终端输入:/usr/bin/python3.5-config --ldflags #得到LIBS的内容
- INCLUDEPATH += -I/usr/include/python3.5m -I/usr/include/python3.5m -Wno-unused-result -Wsign-compare -g -fstack-protector-strong -Wformat -Werror=format-security -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes
- LIBS += -L/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu -L/usr/lib -lpython3.5m -lpthread -ldl -lutil -lm -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions
c . 注意!!!到此并没有配置结束,由于我配置的是Python3.5,所以当改动已编译运行通过的文件后再次执行编译指令会出现如下错误,我在Stack Overflow上找到了解决方法。在.pro文件下添加:
CONFIG += no_keywords即可
d. 在main.cpp中main函数中编写调用test112.py的程序。指令的具体含义大家可以参考:https://segmentfault/a/1190000000531613
e. 编译运行,结果如下:
f. 我在运行时,老是出现“can't open python file”问题,苦思无果。最后发现是程序中的“import numpy as np”有问题,因为这里配置的python3解释器是系统安装的,与前面的PyCharm不同,没有安装第三方库。关于第三方库的安装,大家可以参考:这里可以参考:http://www.jb51/article/91611.htm https://blog.csdn/flyfrommath/article/details/52999100。
3.使用PythonQt库
这里大家可以参考:https://wwwblogs/xia-weiwen/p/7932379.html。
我在编译按照上述博客操作时,出现了无法找到
private/qmetaobjectbuilder_p.h
文件的问题,但是搜索整个就计算机发现确实存在此文件。找了好久没有找到解决方法,最后我把PythonQt的安装文件夹放在了/opt/Qt5.5.1/5.5/gcc_64/include/QtCore/5.5.1/QtCore下,编译通过。
此外,在Stack Overflow上也提供了解决办法,点此查看。
更多推荐
Qt中用C++调用Python文件的三种方法
发布评论