问题::我在其他一些帖子中看到用户在使用功能完善的特性方面取得了成功之后,我决定使用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'
脚本的packages
或include_files
部分中,但这是不同的。我的意思是我可以避免完全使用traitsui,而只需要与Tkinter一起使用,但这将需要对脚本进行大量修改,我认为这是不可行的。期待任何帮助/建议。