一、安装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的程序的运行。我遇到的问题是在读取文件里路径出错,导致出现了这个问题,检查程序即可。