使用Pyinstaller打包:PyQt4.QtGui.setStyle被忽略了?

时间:2016-12-12 23:43:17

标签: python-2.7 pyqt4 ubuntu-14.04 pyinstaller

问题:

如何在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:

enter image description here

Pyinstaller结果:

enter image description here

我正在使用以下方式构建应用程序:

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')

提前感谢任何指针或解决方案。

0 个答案:

没有答案