背景:
我正在尝试将python脚本转换为可在其他计算机上使用的可执行文件。我决定使用PyInstaller。我正在使用 Python 2.7.13 / Anaconda 2.2.0(64位)。我当然看过很多例子,我可以通过基本例子来实现。但是,我现在正在使用的脚本使用环境变量。以下代码块出现在我的python脚本的开头:
import os
# force qt4
os.environ['ETS_TOOLKIT'] = 'qt4'
os.environ['QT_API'] = 'pyqt'
from traits.api import HasTraits, Range, Instance, Button, on_trait_change, Bool, Str, Enum, Float, Int
from traitsui.api import View, Item, Group, HGroup, spring, Handler, Action, InstanceEditor, Menu, MenuBar, message, \
Tabbed
from mayavi.core.ui.api import MayaviScene, SceneEditor, MlabSceneModel
from pyface.api import FileDialog, OK
import yaml
from mayavi import mlab
import numpy as np
from collections import namedtuple
import gdal
问题:
在命令行上运行pyinstaller --onefile filename.py
会生成.exe
,但是由于错误ImportError: No module named qt4
而无法运行。“ qt4”不是模块,所以我是假设问题出在“ os.environ['ETS_TOOLKIT'] = 'qt4
'”行。
看完与PyInstaller相关的各种问题后,我知道如何使用“ hiddenimports”,但是我不知道如何处理环境变量。显然pyinstaller --onefile --hidden-import qt4 filename.py
之类的东西不起作用。