python 入门

需求描述
项目上需要生成word格式的测试报告,程序是基于Qt开发的,用的QAxObject来生成报告。首先需要系统安装了word,如果报告内容多的话,生成速度非常慢。找了一圈没发现特别好的C++的word操作库,docx库比较好,但是只有C#和python的语言的。考虑到python应用场景比较多一些,C#还得安装net环境,所以开始研究一下python。经过一天的研究,基本算是入门 了,下面将安装过程、打包发布、word生成、XML文件读取做一下笔记。整个工程都上传到资源文件中,做一个备份。
下载链接

python安装
这里建议安装python2.7版本,3版本以上的slot变量与Qt冲突,而且还缺少一些头文件。安装路径记得不要有空格,其他的就是下一步、下一步即可,安装完成以后将路径添加到环境变量
在这里插入图片描述
然后打开超级终端,输入 pip install python-docx 即可安装docx库。

python开发环境安装
如果程序简单用notepad++就可以编写python代码,但是没有自动补全,还是有些不方便。网上查了一下,最终选定用sublime text3加kite,效果还不错。左下角显示kite:initialzing说明就可以了。
在这里插入图片描述
sublime的安装直接下一步、下一步就行了。kite的安装路径,路径不要带空格,安装的时候有个添加环境变量,记得勾上。安装完成以后,重启笔记本,打开kite,就可以看到自动探测到sublime了,重新打开sublime就可以了使用了。
在这里插入图片描述
python文档
学习一门语言,最重要的就是会看它的帮助文档。可能主要是因为不熟,还是觉得Qt的帮助文档是最好的。python遇到不会的可以直接用help函数获取它的帮助文件。比如root想知道它有哪些函数和属性,直接调用help就可以获取了,还是比较方便,但是与C++还是有点差别。
在这里插入图片描述
python发布打包
将python安装目录下的Dlls和Lib文件夹拷贝到一个新建的文件夹Python27中,然后将该文件夹拷贝到可执行程序同目录,记得还得拷贝python27.dll过来,此处要注意了,
第一点,该动态库它不在python的安装目录下,在C:\Windows\SysWOW64目录下,如果你是32位就在32位的目录下,可以直接查找也行;
第二点,如果程序要发布到32的系统中一定要用32位的打包,64位的不行,如何获取32位的dll了,很简单在32的机器上安装一次python,然后到C盘获取,这个肯定是对的。
第三点,在Qt程序中需要在pro文件中添加头文件以及动态库的。然后需要设置python的目录。

在这里插入图片描述
pro文件

INCLUDEPATH += D:/Python27/include/
LIBS += D:/Python27/libs/python27.lib

调用python代码

//调用输出"Hello World"函数
int HelloWorld()
{
    Py_SetPythonHome(("./Python27"));
    //initialize
    Py_Initialize();

    //if initialization fails, return
    if(!Py_IsInitialized())
    {
        printf("Py_IsInitialized fail");
        return 1;
    }

    //import module whose name is myModule, that is myModule.py
    PyObject *pModule = PyImport_ImportModule("hello");

    //if it fails, return
    if(!pModule)
    {
        printf("PyImport_ImportModule fail");
        return 2;
    }

    //import function - myModule.HelloWorld
    PyObject * pFuncHello = PyObject_GetAttrString(pModule, "HelloWorld");

    //if it fails, return
    if(!pFuncHello)
    {
        printf("PyObject_GetAttrString fail");
        return 3;
    }

    //call function
    PyObject_CallFunction(pFuncHello, NULL);

    //exit python
    Py_Finalize();
    return 0;
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值