mau*_*bio 6 python qt matplotlib pyinstaller
在尝试使用PyInstaller(v2.1)"冻结"在Windows XP SP3下使用PyQt4(v4.10.4)和Matplotlib(v1.4.2)的Python(v2.78)应用程序时,我遇到了一个恼人的问题.
在我的计划的最开始,我有以下几行:
import matplotlib
matplotlib.use("Qt4Agg")
matplotlib.rcParams["backend.qt4"] = "PyQt4"
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
Run Code Online (Sandbox Code Playgroud)
当我使用该行运行PyInstaller时:
pyinstaller --noconsole --icon=app.ico App.py
Run Code Online (Sandbox Code Playgroud)
应用程序被正确冻结到"dist"文件夹中,它运行没有任何麻烦.问题是,分发文件夹中包含了许多不需要的文件!通过这些"不需要的"文件,我指的是几个对我的应用程序显然无用的"wx"模块(因为它使用Qt而不是Wx用于UI).如果我从dist文件夹手动删除这些文件,该应用程序仍然运行良好.
所以,我的一个大问题是:在使用PyInstaller冻结应用程序时,如何摆脱这些不需要的文件?
我能找到的与py2exe和cx_Freeze,但没有什么是指PyInstaller类似问题的几种可能的解决方案(而这些是我的首选"编译",因为它一直是唯一跨平台的一个似乎Windows和Linux下工作得很好) .
在此先感谢您提供的任何帮助!
编辑:此外,运行PyInstaller时,我收到一条丑陋的错误消息:
43592 INFO: Processing hook hook-matplotlib
Traceback (most recent call last):
File "<string>", line 3, in <module>
File "C:\Python27\lib\site-packages\matplotlib\backends\backend_webagg.py", li
ne 30, in <module>
raise RuntimeError("The WebAgg backend requires Tornado.")
RuntimeError: The WebAgg backend requires Tornado.
Run Code Online (Sandbox Code Playgroud)
但当然我没有使用任何WebAgg后端(并且不知道到底是什么"龙卷风"!).
在冻结过程结束时,我收到了警告:
265046 WARNING: lib not found: gdiplus.dll dependency of C:\Python27\lib\site-pa
ckages\wx-2.8-msw-unicode\wx\wxmsw28u_core_vc.dll
Run Code Online (Sandbox Code Playgroud)
我也希望在冻结过程中消除这两个消息(我认为我将会解决掉掉不需要的后端的问题)!
"