解决cx_freeze打包mayavi、traits等出现:RuntimeError: No pyface.toolkits plugin found for toolkit null

当使用cx_Freeze打包包含mayavi的Python程序时,运行exe文件可能会遇到'RuntimeError: No pyface.toolkits plugin found for toolkit null'的错误。通过检查和调整第三方库版本,特别是将pyface、traitsui降级到5.1.0,可以解决此问题。安装和打包过程包括:安装Python 3.6、cx_Freeze、Mayavi等,并在打包的setup.py文件中正确配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

使用cx_Freeze打包引用了mayavi的py文件,执行生成的exe文件后出现错误:
RuntimeError: No pyface.toolkits plugin found for toolkit null

os.environ['ETS_TOOLKIT'] = 'qt4'
import imp
try:
    imp.find_module('PySide') # test if PySide if available
except ImportError:
    os.environ['QT_API'] = 'pyqt' # signal to pyface that PyQt4 should be used
from pyface.qt import QtGui, QtCore

在py文件引用mayavi之前添加上述代码后,出现错误:
RuntimeError: No pyface.toolkits plugin found for toolkit qt4

解决方案

在查阅各种资料,试了各种方法后发现出现问题的原因是第三方包的版本问题。

  1. 安装环境
    Python 3.6.0(python-3.6.0-amd64.exe)
    cx_Freeze 5.0.2(cx_Freeze-5.0.2-cp36-cp36m-win_amd64.whl)
    Mayavi 4.5.0+VTK71(mayavi-4.5.0+vtk71-cp36-cp36m-win_amd64.whl)
    PyQt4 4.11.4(PyQt4-4.11.4-cp36-cp36m-win_amd64.whl)
    traits 4.6.0(traits-4.6.0-cp36-cp36m-win_amd64.whl)
    VTK 7.1.1(VTK-7.1.1-cp36-cp36m-win_amd64.whl)

  2. 安装过程
    (1)安装Python3.6,安装完成后,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值