一、安装32位的python3.5及各种库
链接:https://pan.baidu.com/s/1q94_Vo3XDhfZ_hmssPjz6w提取码:zotf
先在dos环境下输入python,如果显示版本则表示python安装成功,安装库文件的时候,在dos环境下进入whl文件所在的目录,然后使用pip install ***-whl。如果提示pip版本过低,则按照提示更新pip。
二、在QT中配置python遇到的问题
#include <QCoreApplication>
#include <Python.h>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Py_Initialize();
if ( !Py_IsInitialized() )
{
qDebug() << -1;
}
PyObject* pModule = PyImport_ImportModule("test"); // test.py
if (!pModule)
{
qDebug() << "Cant open python file!\n";
}
Py_Finalize();
return a.exec();
}
qmake, 然后构建,最后运行(每次修改一处错误,都要执行这个步骤)。
错误1:找不到Python.h
解决办法: 在.pro文件中添加python的头文件以及静态链接库。
LIBS += -L F:/Python3.5-32/libs -lpython35
INCLUDEPATH += -I F:/Python3.5-32/include
错误2:调用Python Py_Initialize 出错
原因:归根结底 你需要你的QT的位数和python的位数一样。
QT 5.8 32位 MinGw。
python 3.5.2 32位。
错误3:error: C2238: 意外的标记位于“;”之前
在python的object.h中 slots冲突,因此修改object.h,我的object.h路径:
F:\Python3.5-32\include\object.h
修改前:
修改后:
错误4:运行时候出现,“cant open python file!”
出现这个错误的原因是: 成的exe文件和test_py.py文件不在同一个文件夹里,只要手动将test_py.py拷贝到exe文件同级目录下即可。
错误5:Exception ignored in: module ‘threading’ from 'xxx:\Anaconda3\Lib\threading.py’
在QT下进行Python程序的调用,然后出现了一个线程的错误,如下:
Exception ignored in: <module 'threading' from 'xxx:\\Anaconda3\\Lib\\threading.py'>,
File "D:\Anaconda3\Lib\threading.py", line 1289, in _shutdown
assert tlock.locked()
然后找到打开threading.py文件,文件中说明的大概意思是Python脚本运行的时间太长了,从而耽误了C的程序的运行。我遇到的问题是在读取文件里路径出错,导致出现了这个问题,检查程序即可。