我尝试从Python程序创建一个exe文件,它使用pyQt和QGis和cx_freeze。
这是cx_freeze使用的setup.py。
import sys
from cx_Freeze import setup, Executable
base = None
if sys.platform == 'win32':
base = 'Win32GUI'
options = {
'build_exe': {
'includes': ['atexit'],
'excludes': ['tkinter','tcl','tk'],
'packages': ['PyQt4.QtGui','PyQt4.Qt','qgis.core','qgis.gui','os']
}
}
executables = [
Executable('Open4.py', base=base)
]
setup(name='Open4',
version='1.1',
description='Open4 Icam',
options=options,
executables=executables
)
当我运行这个脚本时,我可以看到这个缺少的模块:
Missing modules:
? _emx_link imported from os
? ce imported from os
? org.python.core imported from copy
? os.path imported from Open4, ajouterunevoirie, open4__main__, os, qgis.utils, shlex
? os2 imported from os
? os2emxpath imported from os
? posix imported from os
? pwd imported from posixpath
? qgis.core.QGis imported from qgis.utils
? qgis.core.QgsApplication imported from qgis.core.contextmanagers
? qgis.core.QgsExpression imported from qgis.utils
? qgis.core.QgsFeature imported from qgis
? qgis.core.QgsGeometry imported from qgis
? qgis.core.QgsMessageLog imported from qgis.utils
? qgis.core.QgsMessageOutput imported from qgis.utils
? qgis.core.QgsProject imported from qgis.utils
? qgis.gui.QgisInterface imported from qgis.utils
? qgis.gui.QgsMapCanvas imported from ui_openihm
? qgis.server imported from qgis.utils
? riscos imported from os
? riscosenviron imported from os
? riscospath imported from os
? subprocess imported from os
但是该脚本使用exe文件以及DLL和PYD文件生成一个构建文件夹。
问题:cx_freeze说qgis.core和qgis.gui缺少模块,但我可以在build文件夹中看到qgis._core.pyd,qgis._gui.pyd,qgis_core.dll和qgis_gui.dll,所以真的这个模块错过?
现在,当我尝试运行EXE文件时,没有任何附加内容,但即使我尝试在控制台窗口中执行此EXE文件也不会报告错误。
我该如何解决这个问题?这是否意味着缺少某个东西(一个模块?)?
感谢您的帮助。
菲利普