我的PyQt4應用程序的py2exe二進制文件在屏幕上短暫閃爍,然後消失。我不知道爲什麼,但在這裏發生了什麼事之前:py2exe:生成的EXE不加載
我的應用程序並沒有顯示SVG圖像加載時(從EXE),所以我周圍挖了一下,發現我不得不改變我的setup.py
包括一個qt.conf
和一些DLL。
然後,在包含qt.conf
之後,二進制只是停止加載。
我打了qt.conf
,發現我的埃克不會加載除非我刪除qt.conf
,所以我認爲這是畸形的。
這裏是我的qt.conf
:
[Paths]
Plugins = plugins
我使用絕對路徑,斜槓,反斜槓試了一下,你的名字。我甚至用這個文件複製了整個PyQt4文件夾,但仍然沒有運氣。
如果是相關的,這是我setup.py
:
import os, sys, glob
from distutils.core import setup
from py2exe.build_exe import py2exe
def find_data_files(source,target,patterns):
if glob.has_magic(source) or glob.has_magic(target):
raise ValueError("Magic not allowed in src, target")
ret = {}
for pattern in patterns:
pattern = os.path.join(source,pattern)
for filename in glob.glob(pattern):
if os.path.isfile(filename):
targetpath = os.path.join(target,os.path.relpath(filename,source))
path = os.path.dirname(targetpath)
ret.setdefault(path,[]).append(filename)
return sorted(ret.items())
setup(
# zipfile = None,
data_files = find_data_files('', '', ['bin/*', 'plugins/iconengines/*', 'qt.conf']),
windows = [{'script': 'main.py'}],
# cmdclass = {'py2exe': Py2exe},
options = {
'py2exe': {
'bundle_files': 1,
'includes': ['sip'],
'dll_excludes': ['MSVCP90.dll']#, 'qsvgicon4.dll']
}
}
)
py2exe似乎有點笨重,而且cx_freeze在Linux上對我很好,所以我會再試一次。我一定會看你的代碼,因爲你的項目在編譯成二進制文件時使用了SVG *和*,所以我猜你的代碼可行!謝謝。 – Blender