ubuntu python2.7 pyqt5 坑
在网上看了很多关于python3的pyqt5安装方法后
我是实验了很多,重装了系统,步入了自闭的深渊
为什么?
为什么人家都安装的好好的,还给了最后的qt窗口截图,我却报错频频???
为什么?
他们说的那些东西,在我系统上根本不可能成功?难道连ubuntu我都装的是破解GHOST版本不成???
为什么?
自闭深渊如此诱人,我深陷其中,无法自拔,或者说,我根本就不想再出去???
吸取的教训是
1、请在安装一些会进入/usr/lib /include /local /share等的环境时,理性的,备份系统
2、当看到某个库或者功能是在用源码编辑的时候,理性的,apt-cache search ,看看是不是apt本来就有,或者想通过apt install一下,看看是不是当前系统已经存在了你想要的包,毕竟make install进入的目录和apt并不是一个概念,当开始调用这些lib或者库的时候,不是所有的命令都指向同一个……这个时候,自闭深渊已经开始将你笼罩
再说下那些坑
如果你和我一样,用到了ROS robot oparetion system,请直接使用pyqt5
python-qt5包,貌似在pypi上版本不一,报错正常,你可以在github上找到python-qt5的项目,说的很明白,是Windows下的包,人家python文件夹里都是dll,唉,当时是我想太多啊
ubuntu 16.04下给我安装的python-pip 版本是8.1.1,每次用都会给我warning,现在版本是19.xxx了,赶快升级哦,土比,建议不要升级,因为升级完后,会有一点小warning和接下来的错误,当然,可以完美解决,但是pip 19还是有warning,它会告诉你,到2020年python2将停止维护等等,就像我们见到最终boss,boss不可攻击还一直对你说,回家搓迪奥去吧!
尽量不要使用 apt install xxx* 这种安装方法,除非你会耐心了解*里面有多少你可用或者根本没有的东西
python>> from PyQt5.QtWidgets import QApplication,
或者
python>>from PyQt5 import Qtcore
报错???!!! 段错误(核心已转储)
请给你当前每一个make install 的包进行 uninstall指令,重头检查自己现在是不是已经可以pyqt5了。
如果说上述情况都没有,或者你根本不想去了解,也可以,下面就是简陋无比的pyqt5安装方法,当然了你一定有你的,www.如果我不是很清楚的话一定有一个地方会告诉我答案.com
SEE YOU~
==============================================================================
如果是python3安装pyqt5,只需要下面几句,包括qdesigner以及pyrrc5都会有了。
sudo apt install qttools-dev*
sudo apt install qt5-default
sudo apt install python3-all-dev python3-pyqt5
==============================================================================
我们在源码包里的通过 python configure.py而不是python3 configure.py 便指定了python版本。
例如,通过python 来编译pyqt5源码的话,在make 文件生成.o静态库的时候我们就会看到
-DPYTHON_LIB=\"libpython2.7.so\"
-I/usr/include/python2.7
这样的语句,便可以判断当前面对的python环境了,如果错了也不要紧,还没有make install呢,make install了也不要紧 还有make clean(一般来讲也就是install clean 或 uninstall 或 clean all之类的,如果报错说没有该命令,请自行观察makefile文件最后的几个冒号都有什么!!!)呢
屁话说了这么多,咱们就来说说pyqt5的配置吧
系统环境:Ubuntu 16.04.6
python环境:python2.7.12 (提前安装好,apt-get install python-all-dev python-pip pip install wstool 等等,当然了,不安装也可以,哪里报错哪里处理即可)
sip版本:Ubuntu自带4.17
gcc g++版本:5.4.0 Ubuntu自带
首先下载一些源码:
sip(按需。下面提到)
https://riverbankcomputing.com/software/sip/download
pyqt
https://www.riverbankcomputing.com/software/pyqt/download5
这两个非常有必要,其他例如qt-creator了之类,看自己需求
首先是sip版本的升级。
什么是sip?
说穿了就是python调用c/c++库的lib,python要用到的是他的so动态库,源码编译因为有了python configure.py 所以会安装在相应python对应版本的dist-package里面
为什么要升级sip?
要看自己目前的下载的pyqt的configure源码
里面定义了对于sip_min_version 如果当前版本已经超过(注意他们代码中是<不是<=)要求,如果没达到要求,下载更高版本的sip源码编译
编译很简单
tar zxvf sip-xxxxxxxxxxxxxxxx
cd sip-xxxxxx
python configure.py
sudo make
先看make出错不,如果出错,www.怎么办呢我们还是搜索一下吧.com 如果不出错,则
cd /usr/lib/python2.7/dist-package
mkdir xxxBackup
sudo mv sip* xxxBackup/
将原来的sip备份一下
然后 回到sip-xxxxxxx目录
sudo make install
如果不去备份sip
则 sip -V 是新版本
python>> import sip
>>print sip.SIP_VERSION_STR
还会是老版本,切记
然后是有点槽但的pyqt源码编译
首先,ubuntu下是自带python-pyqt5的
还是看 import PyQt5 是否报错即可
然后
tar zxvf Pyqt5-xxxxxxxxx
cd Pyqt5-xxxx
python configure.py
又报错
???
大体意思是没找到当前系统上的qt5,最高版本也就是qtv4.8.0之类
但是当sudo apt-get install python-pyqt5 pyqt5*等之后 依然报错
而且所谓的 sudo apt-get install qt-sdk 里面根本没有关于python2的包支持???
甚至Ubuntu还有点想笑>>>python-pyqt5已经是最新版本了,干嘛要我再安装???!!!
其实简单
sudo apt-get install qt5-default
在进入Pyqt5-xxx目录
sudo make
sudo make install
当然了
sudo apt-get install pyqt5*
这句并非没有用
安装之后,我们就可以在
/usr/lib/x86_64-linux-gnu/qt5/bin/designer
这个路径找到designer这个工具了
ok
pyqt5已经install
designer也已经有了
是要用pycharm还是eric
自然是随自己喜欢的搞咯~