在python3中pyqt5和mayavi不兼容问题的解决方法


Posted in Python onJanuary 08, 2019

环境:

win10 64bit & Linux Mint 18.2

WinPython3.6.1,spyder,qtconsole

iep3.7

问题描述:

通过http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyside下载mayavi,pyqt4,vtk等包安装后执行mayavi代码不会出现问题,突然想学pyqt5,就

pip3 install pyqt5

安装了,安装之后重新运行mayavi代码便会出错

错误提示:

RuntimeError: Invalid Qt API 'pyqt5', valid values are: 'pyqt' or 'pyside'

我在根据网上的答案操作的时候还出现了下面的错误,但是已经忘了错误是怎么来的了

>ImportError: Could not import backend for traits

Make sure that you have either the TraitsBackendWx or the TraitsBackendQt
projects installed. If you installed Mayavi with easy_install, try
easy_install <pkg_name>. easy_install Mayavi[app] will also work.

If you performed a source checkout, be sure to run 'python setup.py install'
in Traits, TraitsGUI, and the Traits backend of your choice.

Also make sure that either wxPython or PyQT is installed.
wxPython: http://www.wxpython.org/
PyQT: http://www.riverbankcomputing.co.uk/software/pyqt/intro

解决办法

下面我直说在qtconsole,spyder和iep3.7下成功解决的办法,

首先安装pyside,whl安装文件在上面链接下载,安装完后将pysided目录添加到系统环境变量,比如我的在

D:\Applications\WinPython-64bit-3.6.1.0Zero\python-3.6.1.amd64\Lib\site-packages\PySide

(1) qtconsole

import os
os.environ['QT_API']='pyside'
%gui qt4

网上找到的一个答案是将QT_API修改成pyqt,但我自己试了不行,最后是使用pyside解决的

(2) spyder

在涉及到mayavi的代码中最开始添加

import os
os.environ['QT_API']='pyside'

添加完之后spyder运行还是会出错,要修改ipython的backend,设置那里把bakend修改成Tkinter,我试过修改成Qt4会出现ipython内核启动不了,如图

在python3中pyqt5和mayavi不兼容问题的解决方法

更简单的方法就是设置ipython启动那里,添加上面的代码,如下图,但是要注意迁移到其他平台下要稍作修改。

在python3中pyqt5和mayavi不兼容问题的解决方法

(3) iep3.7

每段代码前加入

import os
os.environ['QT_API']='pyside'

修改shell配置,将gui选择tk,如图

在python3中pyqt5和mayavi不兼容问题的解决方法

2017/08/10更新

在linux下也进行类似的操作,以linux mint18.2 为例,进入新立得软件管理器,搜索python3-pyside 进行安装,注意,如果直接pip3安装会提示

only these python versions are supported: [(2, 6), (2, 7), (3, 2), (3, 3), (3, 4)]

或者通过apt-get 安装

apt-get install python3-pyside

我在linux下也使用spyder,参照上面的配置即可.

每段代码前加入

import os
os.environ['QT_API']='pyside'

然后设置IPython的backend后端为Tkinter

以上这篇在python3中pyqt5和mayavi不兼容问题的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用cookielib库示例分享
Mar 03 Python
Python中统计函数运行耗时的方法
May 05 Python
用python找出那些被“标记”的照片
Apr 20 Python
Python实现接受任意个数参数的函数方法
Apr 21 Python
pandas DataFrame创建方法的方式
Aug 02 Python
找Python安装目录,设置环境路径以及在命令行运行python脚本实例
Mar 09 Python
Python多线程实现支付模拟请求过程解析
Apr 21 Python
Pytorch转tflite方式
May 25 Python
Python json格式化打印实现过程解析
Jul 21 Python
使用numpngw和matplotlib生成png动画的示例代码
Jan 24 Python
python利用xpath爬取网上数据并存储到django模型中
Feb 26 Python
Python学习开发之图形用户界面详解
Aug 23 Python
Django之模型层多表操作的实现
Jan 08 #Python
对python mayavi三维绘图的实现详解
Jan 08 #Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
Jan 08 #Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
Jan 08 #Python
Python OpenCV对本地视频文件进行分帧保存的实例
Jan 08 #Python
python-opencv 将连续图片写成视频格式的方法
Jan 08 #Python
对Python+opencv将图片生成视频的实例详解
Jan 08 #Python
You might like
PHP实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
php 阴历-农历-转换类代码
2012/01/16 PHP
php常用文件操作函数汇总
2014/11/22 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
JS解密入门之凭直觉解
2008/06/25 Javascript
利用javascript/jquery对上传文件格式过滤的方法
2009/07/25 Javascript
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
2010/07/13 Javascript
从零开始学习jQuery (三) 管理jQuery包装集
2011/02/23 Javascript
jquery实现盒子下拉效果示例代码
2013/09/12 Javascript
浅析JavaScript原型继承的陷阱
2013/12/03 Javascript
javascript中打印当前的时间实现思路及代码
2013/12/18 Javascript
jquery实现非叠加式的搜索框提示效果
2014/01/07 Javascript
jQuery+css实现的切换图片功能代码
2016/01/27 Javascript
Angular2  NgModule 模块详解
2016/10/19 Javascript
很棒的vue弹窗组件
2017/05/24 Javascript
微信小程序url传参写变量的方法
2018/08/09 Javascript
详解vue配置后台接口方式
2019/03/29 Javascript
Vue注册组件命名时不能用大写的原因浅析
2019/04/25 Javascript
基于Vue中使用节流Lodash throttle详解
2019/10/30 Javascript
[03:13]DOTA2-DPC中国联赛1月25日Recap集锦
2021/03/11 DOTA
用实例解释Python中的继承和多态的概念
2015/04/27 Python
python dict.get()和dict['key']的区别详解
2016/06/30 Python
Python中使用遍历在列表中添加字典遇到的坑
2019/02/27 Python
使用sklearn的cross_val_score进行交叉验证实例
2020/02/28 Python
使用IPython或Spyder将省略号表示的内容完整输出
2020/04/20 Python
今天学到的CSS最新技术(与图片背景相关)
2012/12/24 HTML / CSS
美国顶级品牌男士大码服装店:DXL
2017/08/30 全球购物
Shell如何接收变量输入
2012/09/24 面试题
幼儿园小班评语大全
2014/04/17 职场文书
刑事辩护授权委托书
2014/09/13 职场文书
2015年电厂工作总结范文
2015/05/13 职场文书
2015年小学财务工作总结
2015/07/20 职场文书
SQL Server中交叉联接的用法详解
2021/04/22 SQL Server
MongoDB 常用的crud操作语句
2021/06/20 MongoDB
JavaWeb Servlet实现网页登录功能
2021/07/04 Java/Android
Python面试不修改数组找出重复的数字
2022/05/20 Python