zoukankan      html  css  js  c++  java
  • ubuntu搭建pyqt5开发环境

    到PyQt官网去下载最新版本

    https://www.riverbankcomputing.com/software/pyqt/download5

    根据提示我们首先应该安装SIP,什么是SIP呢,百度一下,是用来调用c/c++模块的,因为qt是用c++写的,pyqt就是一个中间件,我们写一句python代码

    告诉pyqt我要生成一个窗口,然后pyqt就去用到sip的东西去调用qt的c++窗口模块,个人理解,不保证准确

    说到这里我们的SIP已经下载下来了,文件sip-4.17.tar.gz

    tar -xzvf sip-4.17.tar.gz

    cd sip-4.17/

    python3 configure.py  因为我们是要搭建的pyqt5,pyqt5需要python3.x  所以这个地方用python3 来执行配置文件 现在的ubuntu发行版默认都是自带 python2.x和python3.x 两个版本

    如果这个步没有错误的话 sudo make && sudo make install 就安装好了

    遇到错误一定要看错误描述,我到最后一步就出错了 ,提示我stdio.h没有找到,应该是没有gcc编译环境  解决办法: sudo apt-get install build-essential

    接着还会提示缺少 Python.h  解决办法  :  sudo apt-get install python3-dev

    第一步完成 接着我们下载PyQt源文件:PyQt-gpl-5.5.1.tar.gz

    tar -xzvf PyQt-gpl-5.5.1.tar.gz

    cd PyQt-gpl-5.5.1/

    python3 configure.py   配置这一步出现错误,

     

    他默认去找qt4下面的qmake,下面他提示我说:“看样子你用的python3” 试试自己指定qmake的路径,好,根据他的提示我自己指定qmake的路径

    python3 configure.py  --qmake=/usr/lib/x86_64-linux-gnu/qt5/    写到这个地方我就按tab补全路劲  结果使劲按下面根本就没有qmake,

    也就是说我们还没有安装qt,

    解决办法 : sudo apt-get install qt5-default 

    修正一下,如果按照上面一行安装qt通常来说不是最新版本,我第一次就这么干的,安装完我去看pyqt的库发现少了很多,比官方介绍的要少很多库,

    qt官方文档介绍QtWebEngine用来替代QtWebKit,但是我发现我的库里面居然没有QtWebEngine,再去看pyqt官方文档,也列出了QtWebEngine库,

    还列出了很多我本地没有的库,正纳闷儿,我在代码里面偶然看到一个qt的版本函数QtCore.qVersion() ,然后我就输出看了一下,结果我的版本是 qt5.2.1

    我于是明白了什么,马上去qt官网下载最新的5.5  ,

    下载地址:http://www.qt.io/download-open-source/

    首先映入眼帘的就是那个大大的 Download Now 按钮,这个是在线安装程序,下载下来后就是一个安装器,我试了两次,非常慢,基本上都是半路卡死

    所以强烈建议下载离线版:红框圈出来的地方,进去过后找到Linux 二进制包,继续往下面滑动还有源码包,推荐下载二进制包就可以了,方便些,

    下载下来是:qt-opensource-linux-x64-5.5.1.run

    添加执行权限: sudo chmod +x qt-opensource-linux-x64-5.5.1.run 

    运行:./qt-opensource-linux-x64-5.5.1.run

    安装过程中可以选择qt的路径,我安装在 /opt/Qt5.5.1 下面

    然后重新配置:

    python3 configure.py  --qmake=/opt/Qt5.5.1/5.5/gcc_64/bin/qmake

    接下来配置就通过了,然后就是  sudo make && sudo make install  

    这一步根据电脑性能可能要等一会儿,我一步用了20多分钟,要结束的时候又报错了,no

    'qgeolocation.h' file not found

    我去看了一下下载下来的PyQt文件里面 cd PyQt-gpl-5.5.1/QtPositioning/ && ls 

    发现没有这个头文件,这个模块主要是用于定位的,手机上定位用的多,电脑上还是算了吧  然后回到上一步重新配置,直接忽略这个模块

    python3 configure.py --qmake=/opt/Qt5.5.1/5.5/gcc_64/bin/qmake  --disable=QtPositioning

    重新 sudo make && sudo make install 通过

    OK,现在本地的库和官方介绍保持一致了。

    小测一下导入import PyQt5没问题,但是提示:(注意:这一步错误你们因该遇不到,我因为之前装了pyqt4才导致的问题)

    the sip module implements API v11.0 but the PyQt5.QtCore module requires API v11.2

    google了一番:

    import sip ;  print(sip, sip.SIP_VERSION_STR)

    它输出的居然是: ” /usr/lib/python3/dist-packages/sip.cpython-34m-x86_64-linux-gnu.so “  4.1.5

    看了一下stackoverflow 上的讨论,提问者贴出来的是  ” /usr/lib/python3/dist-packages/sip.so “  4.1.5

    我进入目录看一下,我里面也有一个sip.so库, 然后我就试了一下把原来的 sip.cpython-34m-x86_64-linux-gnu.so  改了个名字

    奇迹发生了有木有!!! 这次输出 ” /usr/lib/python3/dist-packages/sip.so “  4.1.7 了  真不容易。。

    到此。PyQt5环境安装结束,各种坑基本上都领略了一番。好简单测试一下

     1 #!/usr/bin/python3
     2 # -*- coding: utf-8 -*-
     3 
     4 import sys
     5 from PyQt5.QtWidgets import QApplication, QWidget
     6 
     7 
     8 if __name__ == '__main__':
     9     
    10     app = QApplication(sys.argv)
    11 
    12     w = QWidget()
    13     w.resize(250, 150)
    14     w.move(300, 300)
    15     w.setWindowTitle('Simple')
    16     w.show()
    17     
    18     sys.exit(app.exec_())

    运行效果如下:

  • 相关阅读:
    Cross-Site Scripting XSS 跨站攻击全攻略 分类: 系统架构 2015-07-08 12:25 21人阅读 评论(2) 收藏
    WAS集群:记一次Node Agent不活动问题解决过程
    Oracle RAC集群资料收集
    Linux使用 tar命令-g参数进行增量+差异备份、还原文件
    WAS7.0安装补丁升级程序无法替换文件 java/docs/autorun.inf解决办法
    Java程序员面试失败的5大原因
    Lemon OA第4篇:常用功能
    Lemon OA第3篇:核心功能
    Lemon OA第2篇:功能解析方法
    Activiti5小试牛刀demo流程
  • 原文地址:https://www.cnblogs.com/codeAB/p/5013078.html
Copyright © 2011-2022 走看看