安装pyinstaller:
pip install pyinstaller
实现方式:
1.windows可直接执行pyinstaller 入口程序 即可,如果有图文和其他要求,可以继续往下看。。。。。
pyinstaller
--noconsole
--add-data "
resources
:resources"
--add-data="resources/*:."
--icon=resources/radar0.ico
RadarMainWindow.py
单文件
pyinstaller
--onefile
--add-data "resources:resources" RadarMainWindow.py
2.pyinstaller在ubuntu下打包注意事项
升级pip(否则可能导致安装最新的包装不上): pip install --upgrade pip
: 第一层partick ,第二层FiguresUI目录和RadarMainWindow.py文件。pyinstaller打包后,提示RadarMainWindow文件中,引用的FiguresUI找不到。这是为何?
这个问题可能是因为在打包时,PyInstaller没有正确地找到FiguresUI目录。你可以尝试以下方法解决这个问题:
-
确保FiguresUI目录和RadarMainWindow.py文件在同一个目录下。
-
在打包时,使用--add-data选项将FiguresUI目录添加到打包文件中。例如:
pyinstaller --onefile --add-data "FiguresUI:FiguresUI" RadarMainWindow.py
raceback (most recent call last): File "leida_learning/patrick/RadarMainWindow.py", line 35, in <module> File "/home/dayao/python_notes/leida_learning/patrick/dist/RadarMainWindow/_internal/FiguresUI/utils/Figures_Utils.py", line 2, in <module> import matplotlib.pyplot as plt File "PyInstaller/loader/pyimod02_importers.py", line 419, in exec_module File "matplotlib/pyplot.py", line 61, in <module> File "PyInstaller/loader/pyimod02_importers.py", line 419, in exec_module File "matplotlib/figure.py", line 43, in <module> File "PyInstaller/loader/pyimod02_importers.py", line 419, in exec_module File "matplotlib/projections/__init__.py", line 58, in <module> File "PyInstaller/loader/pyimod02_importers.py", line 419, in exec_module File "mpl_toolkits/mplot3d/__init__.py", line 1, in <module> File "PyInstaller/loader/pyimod02_importers.py", line 419, in exec_module File "mpl_toolkits/mplot3d/axes3d.py", line 27, in <module> ImportError: cannot import name 'rcParams' from 'matplotlib.axes' (/home/dayao/python_notes/leida_learning/patrick/dist/RadarMainWindow/_internal/matplotlib/axes/__init__.pyc) [9976] Failed to execute script 'RadarMainWindow' due to unhandled exception!
这个错误是由于在打包过程中,matplotlib库没有被正确地包含进去。你可以尝试以下方法解决这个问题:
-
确保你已经安装了matplotlib库。如果没有安装,可以使用以下命令安装:
pip install matplotlib
-
在使用PyInstaller打包时,添加--hidden-import参数来手动指定需要包含的库。例:
pyinstaller --onefile --hidden-import=matplotlib RadarMainWindow.py
如果100个包都不一样,可以尝试使用以下方法: