pyinstaller打包多个py文件,python pyinstaller打包程序太大
1.安装和使用使用以下命令进行安装
Pip安装pyinstaller基本命令:
#语法:pyinstaller选项源文件pyinstaller -F main.py公共选项:
选项-f,-onefile是单个可执行文件-d,- onedir是可执行程序-a,- ascii是Unicode字符集为-d的可执行文件,- debug version-c,- nowindowed,- console指定应该使用命令行窗口运行程序。-o DIR,- out=DIR指定等级库文件的生成目录。否则默认使用当前目录生成spec文件-p DIR,- path=DIR,并设置Python导入模块的路径。类似于设置PYTHONPATH环境变量。您还可以使用路径分隔符(Windows上的分号和Linux上的冒号)来分隔多个路径。- name=NAME是项目的名称)。如果省略此选项,第一个脚本的主文件名将使用spec name-I Add icon-Hide imported unpacked modules-paths指定导入文件的路径,然后使用py。
同时给出官方说明。
要用PyInstaller打包PySide程序,首先使用以下命令:
pyinstaller -F -w main.py
当打包的exe文件运行时会报告上述错误,因为PySide6。QtSvg模块未导入。对于此类错误,请使用-\-hidden-import命令在打包期间导入缺少的模块。
该命令如下所示。
py-f-wmain . py-hidden-importpyside 6 . qtsvg在打包过程中还注意到以下警告:
477警告:未找到lib:Shi boken 6。ab i3 . dll dependency ofd:\ program data \ anaconda 3 envs py side 6 lib tsvgwidgets . pyd 4793警告:未找到lib:Shi boken 6。ab i3.dlldependencyofd :\程序数据anaconda 3 enacond 3 end Qt network . pyd 4815警告:未找到lib:石博肯6。ab i3 . dll dependency ofd:\ program data anaconda 3 site-pack kke Qt widgets . pyd 4831警告:未找到lib:Shi boken 6。ab i3.dlldependencyofd 3360\ Prog正在生成lib站点包Qt GUI.pyd 4845警告:lib未找到3360 Shi boken6。ab i3 . dll dependency ofd 3360 \ prependency ofd 3360 lib site-packages Qt core . pyd 5028警告:lib未找到3360 Shi boken6。ab i3 . dll dependency ofd 3360 \ PLL lib \ site-packages py side 6 shiboken6.abi3.dll
通常可以在本地的PySide6库中找到文件,在本地搜索shiboken6.abi3.dll找到文件的路径;
如果没有,您可以通过此链接下载文件。下载链接
你在网上看到的解决方案是将shiboken6.abi3.dll文件所在目录的路径添加到- path中。这意味着:
py installer-f-wmain . py-hidden-importpyside 6。Qt SVG-paths=d:\ program data \ anaconda 3 envs pyside
排序:
1)错误信息表示无法将WindowsPath添加到字符串中,所以我认为Python不支持PyInstaller或PySide6语法,所以我删除了PyInstaller和PySide6。
2)用pip代替conda也没用,重新安装PyInstaller和PySide6或者用默认源码替换pip。
出现最后一个错误:用PySide6\__ init __.py确认。
找到错误发生的地方,第26行
从这段代码可以看出,它其实是打算告诉我的,但是没有找到shiboken6。但是提示信息的构成中有几个语法错误,可能误会我们了。根本原因是找不到shiboken6。
因此,shiboken6.abi3.dll被添加到路径中。那就是:
py installer-f main . py-hidden-importpyside 6。Qt SVG-pathsd:\ program data \ anaconda 3 envs py side 6
或者,您可以将shiboken6.abi3.dll直接复制到项目路径中。
py-f main . py-hidden-importpyside 6 . qtsvg-pathshiboken 6 . ABI 3 . dll 3 .小尖打包的APP应用打包在一起。
但是,如果不知道当前包中是否缺少文件或模块,就不要使用-w。这样,错误将被输出到命令行窗口,使调试变得容易。
程序打包后,通常会生成一个exe文件。双击exe将导致命令行窗口闪烁并退出。您可以使用其他方法打开exe文件。
首先,打开命令行(cmd)
将exe文件拖到命令行
如果你点击回车,这个exe文件将被执行。此时,命令行窗口不会退出,您可以在窗口中显示一条错误消息以进行调试。
问题:如果项目使用相对路径查找settings.json文件,但cmd工作区位于C:\Users\Administrator,则为C:\Users\Administrator。
解决方法:调试时,在包含exe的目录下打开cmd,或者将cmd工作区切换到包含exe的目录下,然后拖动exe文件运行。
在调试并验证exe文件是否正常运行后,确定package命令中要添加的选项,然后添加-w选项,生成没有命令行窗口的exe程序。
最后,记得把一些项目需要的json文件、图片、资源(比如文件夹、图标、xml)复制到打包的exe文件目录或者前面代码中的相对目录位置。
4.3358见c.biancheng.net/view/2690.html
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。