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

自然是随自己喜欢的搞咯~

你可能感兴趣的:(ubuntu python2.7 pyqt5 坑)