找回密码
 立即注册
收起左侧

使用Qt连接Python35一直出错

4
回复
7341
查看
[复制链接]
累计签到:9 天
连续签到:1 天
来源: 2017-3-8 20:56:25 显示全部楼层 |阅读模式
3Qter豆
以下是Qt中的代码
pro中
  1. QT += widgets

  2. SOURCES += \
  3.     main.cpp

  4. INCLUDEPATH += -I F:\Python35\include\
  5. LIBS += F:\Python35\libs\ -lpython35

  6. DISTFILES += \
  7.     B.py

  8. CONFIG += no_keywords
复制代码
main函数:
  1. #include <QCoreApplication>
  2. #include "Python.h"
  3. #include <QDebug>


  4. int main(int argc, char *argv[])
  5. {
  6.     QCoreApplication a(argc, argv);
  7.     Py_Initialize();
  8.     if (!Py_IsInitialized())
  9.     {
  10.         return -1;
  11.     }
  12.     PyObject* pModule = PyImport_ImportModule("B");
  13.     if (!pModule) {
  14.         qDebug() << "Cant open python file!";
  15.         return -1;
  16.     }
  17.     PyObject* pFunhello= PyObject_GetAttrString(pModule,"hello");
  18.     if(!pFunhello) {
  19.         qDebug() << "Get function hello failed";
  20.         return -1;
  21.    }
  22.     PyObject_CallFunction(pFunhello,NULL);
  23.     Py_Finalize();
  24.     return a.exec();
  25. }
复制代码
Python代码:
  1. def hello():
  2.     print("hello")
复制代码
错误:

最佳答案

查看完整内容

试试我的工程,运行之后,把B.py拷贝到release目录下
回复

使用道具 举报

累计签到:38 天
连续签到:1 天
2017-3-8 20:56:26 显示全部楼层
试试我的工程,运行之后,把B.py拷贝到release目录下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

累计签到:38 天
连续签到:1 天
2017-3-9 10:04:15 显示全部楼层
  1. QT += widgets

  2. SOURCES += \
  3.     main.cpp

  4. INCLUDEPATH += -I C:/Python35-32/include/
  5. LIBS += C:/Python35-32/libs/python35.lib

  6. DISTFILES += \
  7.     B.py

  8. CONFIG += no_keywords
复制代码


在你的基础上改的,可以输出了 hello,我使用的是release。
回复

使用道具 举报

累计签到:9 天
连续签到:1 天
2017-3-9 13:34:14 显示全部楼层
daxuezdj7 发表于 2017-3-9 10:04
在你的基础上改的,可以输出了 hello,我使用的是release。

我下载了Python35的32位版本
然后使用了你说的方法,可是现在又出现了新的问题
Qt执行后提示程序运行失败
During startup program exited with code
回复

使用道具 举报

累计签到:9 天
连续签到:1 天
2017-3-9 14:04:03 显示全部楼层
隔壁林叔叔 发表于 2017-3-9 13:34
我下载了Python35的32位版本
然后使用了你说的方法,可是现在又出现了新的问题
Qt执行后提示程序运行失败 ...

刚刚我又重新启动了一次Qt
然后发现问题变成了
Fatal Python error: Py_Initialize: unable to load the file system codec
ImportError: No module named 'encodings'

Current thread 0x000154e4 (most recent call first):
Fatal Python error:
Py_Initialize: unable to load the file system codec
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了