使用CX_Freeze冻结traitsUi程序时Qt4导入错误

时间:2018-07-04 13:20:13

标签: python pyqt cx-freeze

问题::我在其他一些帖子中看到用户在使用功能完善的特性方面取得了成功之后,我决定使用cx_freeze将python脚本转换为.exe文件。但是在尝试运行它时出现以下错误:

function playMusic() {

    var playPromise = HTMLPlayer.play();

    if (playPromise !== undefined) {

        playPromise.then(function() {

        }).catch(function(error) {

        });

    }

}

我找不到与我相同的错误的其他帖子/信息。这是我正在使用的ImportError: No module named qt4 文件:

setup.py

我正在运行的实际python脚本正常运行没有任何问题。我还必须在Python脚本的开头包含import os os.environ['ETS_TOOLKIT'] = 'qt4' os.environ['QT_API'] = 'pyqt' from cx_Freeze import setup, Executable import sys import matplotlib import numpy import traits.api import traitsui.api import mayavi.core.ui.api import pyface.api import yaml import mayavi import collections import osgeo import pandas import datetime import xlsxwriter import time import itertools import xlrd import scipy import Tkinter import tkMessageBox scipy_path = os.path.dirname(scipy.__file__) base= None if sys.platform == 'win32': base = 'Win32GUI' executables = [ Executable('AnalyseData.py', base=base)] buildOptions = dict( packages = ["numpy", "matplotlib","traits.api","traitsui.api","mayavi.core.ui.api", "pyface.api","yaml","mayavi","collections","osgeo", "pandas","datetime","xlsxwriter","time","itertools","xlrd","Tkinter","tkMessageBox", "os"], excludes = [], include_files=[str(scipy_path)]) setup(name='AnalyseData', version = '1.0', description='analyses crawler mining data', options = dict(build_exe = buildOptions), executables = executables) os.environ['ETS_TOOLKIT'] = 'qt4'才能使其运行。

问题:如何解决此“ qt4”导入错误?我知道还有其他导入错误,例如scipy,您可以将它们添加到os.environ['QT_API'] = 'pyqt'脚本的packagesinclude_files部分中,但这是不同的。我的意思是我可以避免完全使用traitsui,而只需要与Tkinter一起使用,但这将需要对脚本进行大量修改,我认为这是不可行的。期待任何帮助/建议。

0 个答案:

没有答案