问题:
如何在Ubuntu 14.04上使用Pyinstaller为我的应用设置PyQt样式?
详细信息:
我在Windows上使用pyinstaller打包了一个PyQt4 / Python应用程序,它看起来工作得很好,包和我在IDE中运行时没有区别。我试图使用Ubuntu 14.04重现这个过程,我有一些我无法解决的问题。
我可以使用以下命令在IDE中运行时设置PyQt样式:
app = QtGui.QApplication(sys.argv)
app.setStyle('sgi')
但是,在构建过程中会忽略它。其他所有工作方式与Windows构建方式相同,但打包的Ubuntu应用程序与在Ubuntu上的IDE中运行时看起来非常不同:
IDE:
Pyinstaller结果:
我正在使用以下方式构建应用程序:
james@james-PC:~$ pyinstaller --distpath /path/myApp/tmp --onedir /path/myApp/myApp.spec
我使用终端运行应用程序以查看是否有任何裁剪,但唯一出现的是应用程序首次加载时的以下内容:
(myApp:8312): Gtk-WARNING **: Unable to locate theme engine in module_path: "murrine",
在Google搜索Gtk-WARNING
时,有许多建议的解决方案。我多次尝试过,没有运气。从我读过的内容来看,我并不相信这与我的PyQt setStyle问题有关。
以防它有用,我使用的spec文件如下:
# -*- mode: python -*-
block_cipher = None
added_files = [('some/file.txt','.')]
a = Analysis(['/path/myApp.py'],
pathex=['/home/'],
binaries=None,
datas=added_files,
hiddenimports=['numpy','os','sys','joblib.Parallel','joblib.delayed','scipy.signal.spectrogram','matplotlib','mplwidget','multiprocessing','matplotlib.pyplot','matplotlib.cm','platform','time','ctypes','matplotlib.gridspec','scipy.constants','tkinter','tkFileDialog','myGUI','scipy.interpolate.interp1d','itertools.combinations','pyfftw'],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_ciper)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_ciper)
exe = EXE(pyz, a.scripts, exclude_binaries=True, name='maApp', debug=False, strip=False, upx=True, console=True)
coll = COLLECT(exe, a.binaries, a.zipfiles, a.datas, strip=False, upx=True, name='myApp')
提前感谢任何指针或解决方案。