总结使用pyinstaller打包pyqt5以及pytorch的各种坑 | 您所在的位置:网站首页 › pytorch项目怎么打包 › 总结使用pyinstaller打包pyqt5以及pytorch的各种坑 |
python可以用于打包的库
使用pip installer pyinstaller 安装库即可(不是很好用有时候安装上去还是显示没) 也可以到官网上下载 https://www.pyinstaller.org/downloads.htm 下载tar.gz 格式的解压到一个文件夹,在该路径下打开命令行窗口,使用 pip setup.py install 即可。win7需要装pywin32,同样使用pip install 安装就行。找到需要打包的py文件目录,shift+右键 点击 在此处打开命令行窗口(或者知道路径 使用cd 也可以),此时命令行窗口显示路径与py文件目录一致 ![]() ![]() ![]() 5.如果没有错误的话(错误怎么解决下面会讲),命令行窗口最后会显示一个successfully,同时文件同一目录下会生成build和dist文件夹 exe可执行文件在dist文件夹里面。 6.一般情况下,打包好会发现特别大,原因是写代码是没有注意,有的库只用到了一个小模块,就直接调用一个大模块,这样会造成把一些不需要的也打包进来了。 用到YYY时 使用 from XXX import YYY 而不是直接使用import XXX 。这两种形式代码中调用也不一样。这里拿 sys模块演示 。使用import sys 代码中 调用 argv模块就是 os.argv 而from os import argv 代码中就直接argv就可以了。 如果想查看argv是否是sys中一个小模块可以这样查看 1.好像是因为版本兼容性的问题使用pyinstaller打包pyqt5需要在同一目录下放入一些动态链接库。需要C:\ProgramData\Anaconda3\Lib\site-packages\PyQt5\Qt\plugins中的 platforms文件夹,放入到需要打包的同一目录下。 2.使用 pyinstaller -w XXX.py 可以在运行的时候不显示命令行框,只显示ui界面,但是如果出错的话也不会报错,建议先使用pyinstaller -c XXX.py 打包(会显示运行情况,出错会报错),在确定没错的情况下,再使用 -w 3.报错 AttributeError : 'str' object has no attribute 'items' 解决方式 重新安装setuptools (pip uninstall setuptools ) 在anconda中卸载setuptools显示有一程序正在占用 解决方法:重启电脑再次尝试 4报错 Cannot find existing PyQt5 plugin directories 解决办法:建立路径C:\Users\ray\qtb-3.5-64\_b_env\Library\plugins 在里面添加两个文件 pyqt5.dll pyqt5qmlplugin.dll (直接按名字搜 看大小跟我的一样应该就是了) 5报错 UnicodeDecodeError: utf-8 code can't decod byte Oxce in position x: 解决办法:在这句话上面有报错的py文件的名字路径报错误的位置 找到之后 把里面的decode给改成了 "utf8","ignore" 6.我的问题解决 (实际中只用qt 并没这么多的问题 ) 1.pytorch出来没多久,打包网上案例不是很多,我们使用pytorch做了一个目标检测的小demo,在打包过程中也是出现各种错误。 2.报错 Maximum recursion depth exceeded 解决方法: 处理太快了我们需要降降速。在同一文件夹下会有一个xxx.spec文件打开之后 在最上面添加两行代码 import sys sys.setrecursionlimit(5000)
3.打包好之后生成了exe文件 并且在原电脑上可以运行另一台没有环境的电脑会报错 script pyi_rth_win32comgenpy 解决办法:重装pywin32 。在这里如果使用anconda pywin32是很难卸掉的,需要先将pip降级到9.0(pip install "pip |
CopyRight 2018-2019 实验室设备网 版权所有 |