安装步骤和我的上一篇阿雪的学习记录|Anaconda(python3.6)安装PyQt5步骤相同,但先别急着看!先看完这篇,否则安装好后你Spyder会打不开,当然如果已经按照上一篇那么安了的,也出现了相同问题的也可以参考这篇。
1. 安装好PyQt5后Spyder打不开
上篇当时遇到了安装好之后Spyder打不开的问题,在网上寻找相关解决方法,包括但不限于:重装spyder,重装anaconda,重装python,重装PyQt5,更新各种版本等等,试过其中自认为性价比低一点的方法,然后导致连anaconda都打不开,在此细说一下自己的解决方法。
首先已知
PyQt5 中 QtWebKitWidgets 改名了
5.11.3: QtWebKitWidgets
5.12: QtWebEngineWidgets
我的PyQt版本比较低,低于5.11,所以该教程仅限于5.11.3及以下出现问题的,5.12以上的不了解,不保证能解决你的问题~
先列出我的各种版本:
Windows10 64bit
Anaconda4.4.0
Spyder3.1.4
Python3.6.1
QT5.7.1
PyQt5 5.7.1
其中,Spyder、Python、QT、PyQt5都是安装了Anaconda后直接就有的,即便在cmd里用pip list看不到pyqt5,打开Spyder-Help-About Spyder…,也可以看到你的PyQt版本,如图所示:
为了验证你是有PyQt5的,可以在cmd里先进入python环境,输入
import PyQt5
返回不报错就说明你有,且可以用,但是这个问题是,你已经又安装了一次PyQt5,所以导致打不开Spyder的唯一原因就是,你安装的PyQt5版本比你Spyder里显示的Anaconda自带的PyQt5版本高,可以用这种方法查看你安装的版本和自带版本的路径:
查看你安装的PyQt5路径:
在cmd里进入python环境,importPyQt5的库:
C:\Users\223072088>python
Python 3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:25:24) [MSC v.1900 64 bit (AMD64)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.
import PyQt5
查找PyQt5所在位置:
PyQt5.__file__
就会显示你安装的版本的PyQt5的安装路径,这个路径应该是以Python\\lib\\site-packages
开头的路径,因为你自己安装的前提一定是自己还又安装了python,所以路径就在python下。
查看Anaconda自带的PyQt5路径:
在Anaconda Prompt进入python环境,importPyQt的库:
(C:\software\Anaconda3) C:\Users\223072088>python
Python 3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:25:24) [MSC v.1900 64 bit (AMD64)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.
查找方法和上面一样
import PyQt5
PyQt5.__file__
就显示Anaconda自带的PyQt5路径,比如我的是'C:\\software\\Anaconda3\\lib\\site-packages\\PyQt5\\__init__.py'
,就反正是Anaconda\\lib\\site-packages
开头。
你会发现你安装的版本比Anaconda自带版本高,比如我当初安装的5.8,我自带的是5.7.1,那么你现在要做的就是把5.8卸载,pip uninstall PyQt5
这个命令把PyQt5卸载掉,加版本号卸载也行都一样,然后安装等于或低于Anaconda自带版本的PyQt5,安装就和上篇博客说的一样,你电脑能直接pip install就别费劲找轮子了,我当时找了个一模一样版本的安装了,完了再去用上面两个找路径的办法找,就都返回Anaconda路径的了。
即便如此,不可以卸载之后直接用自带的!因为内置版本里缺很多东西,直观特征有两个:1.在安装对应版本的PyQt-tools时它找不到Anaconda自带的PyQt5,会提示你安装PyQt5;2.在C:\software\Anaconda3\Lib\site-packages\PyQt5
这个路径里有一些文件和文件夹,但是只有__pycache__
和uic
两个文件夹,没有Qt
文件夹。反正这两个特征都表明,你无法安装PyQt5-tools,从而找不到designer。
至此,你的Spyder可以正常使用了,也可以用designer设计UI了。
提示
在问题1解决后,想要正常使用还必须手动安装PyQt_tools,安装好后designer.exe就在这个文件夹里C:\software\Anaconda3\Lib\site-packages\pyqt5-tools
。
安装的时候会报错,报错会告诉你要先安装PyQt5_sip(或者sip)等等等等,具体可以参考上一篇博客,反正它报错让你安什么你就安什么,注意需要满足它提示里说的版本范围。
2.在打包程序时出现错误
AttributeError: Module ‘PyQt5‘ has no attribute ‘version‘
这个问题的原因和上面一样,你安装的PyQt5版本高了,在打包的时候高版本的PyQt5打包不了你在Spyder里import的低版本的PyQt5库。
3.在打包后exe文件打不开
ImportError DLL load failed 找不到指定的程序
一样的,也是你PyQt5版本高了,而且需要合适版本的pyinstaller(不过这个也就俩版本,一个python2一个python3,一般不会安错),按照问题1的核实了之后就都好了