安装
windows
1 | pip install PyQt5 |
但是安装完毕会出现ImportError: DLL load failed: 找不到指定的模块
的错误提示,这是因为通过Anaconda安装的Python缺少了python3.dll,可以通过去python.org下载相应的 Windows x86-64 embeddable zip file
压缩文件,从中拷贝python3.dll文件,粘贴到Anaconda安装目录下,也就是python36.dll所在的目录下,一般就是第一层目录,例如我这里就是D:\Anaconda3
目录下
Qt Designer的使用
为了使用Qt Designer
1 | pip install PyQt5-tools |
安装完毕后,在路径D:\Anaconda3\Lib\site-packages\pyqt5_tools
下面有designer.exe
软件。
打开Pycharm,找到file->Settings->tools->external tools
,点击+
号,Name填入QtDesigner(方便后续使用,名称无所谓)。Program选择我们安装的PyQt5-tools下面的designer.exe,这里为D:\Anaconda3\Lib\site-packages\pyqt5_tools\designer.exe
。Working directory则选择我们的工作目录,这里为。然后点击OK,则添加了QtDesigner作为PyCharm的外置工具。如下图所示
然后添加PyUIC(UI转换工具),PyUIC的Program为在Python的安装目录下面的Scripts目录下的pyuic5.exe,即D:\Anaconda3\python.exe
,Working directory同理设为我们的工作目录,这里为,Arguments则填入如下代码:
1 | -m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py |
如下图所示
使用的时候,要选中*.ui
文件,然后点击PyUIC
最后添加pyrcc用于PyQt5的资源文件转码,Program为在Python的安装目录下面的Scripts目录下的pyrcc5.exe,即D:\Anaconda3\Scripts\pyrcc5.exe
,Working directory同理设为我们的工作目录,这里为,Arguments填入:
1 | $FileName$ -o $FileNameWithoutExtension$_rc.py |
如下如所示:
退出之前,点击Apply保存配置。配置完成之后,PyCharm中会加入3个工具。
点击QtDesigner则打开QtDesigner的界面。
打包
安装pyinstaller
1 | pip install pyinstaller |
打包:
1 | pyinstaller.exe -Fw E:\我的坚果云\Translation\baidu_translation.py |
打包好的exe在dist文件夹下,例如我的anaconda在C:\Users\x230w\Anaconda3
,打包好的exe放在C:\Users\x230w\dist
目录下。
打包报错
打包过程出现了如下错误,
1 | Exception: |
解决方法为:首先新建上面报错的目录mkdir C:\qt5b\qt_1524647842210\_h_env\Library\plugins
,然后搜索pyqt5.dll,pyqt5qmlplugin.dll
,放到上述路径中,在我的电脑中,pyqt5.dll
路径为C:\Users\x230w\Anaconda3\Library\plugins\designer
,而pyqt5qmlplugin.dll
在C:\Users\x230w\Anaconda3\Library\plugins\PyQt5
。
运行报错
打包完,运行exe报错。
第一种方案是:查看build
文件夹下的报错文件,在这里我的路径为C:\Users\x230w\build\baidu_translation
下的warn-baidu_translation.txt
,看里面的报错信息。
第二种方案是:使用-c
命令替换-w
命令,可以将生成的exe文件打开方式为控制台打开。然后打开cmd,拖程序到cmd中,执行即可查看报错信息。
顺便说一下几个参数的作用:
- -F:是直接生成单独的exe文件,不附带各种依赖文件的。
- -c:生成的exe文件打开方式为控制台打开。
- -w:这个和上面的-c对应,如果你的程序是有ui的,那就用这个-w。这样不会出现控制台,直接是你的ui。
- -I:给你的exe文件添加一个图标,后面要紧接着你想要的ico文件。
- -p:后面紧跟着你要指定的模块搜索路径,如果你的模块安装的路径没有被PyInstaller自动检索到的话,就需要自己指定了。