在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 相关文章推荐
Eclipse + Python 的安装与配置流程
Mar 05 Python
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
Sep 18 Python
Python创建xml文件示例
Mar 22 Python
Python中return self的用法详解
Jul 27 Python
解决python "No module named pip" 的问题
Oct 13 Python
Python的iOS自动化打包实例代码
Nov 22 Python
详解Python3中ceil()函数用法
Feb 19 Python
Python文件读写常见用法总结
Feb 22 Python
python代理工具mitmproxy使用指南
Jul 04 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
Aug 28 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
Sep 05 Python
Laravel框架表单验证格式化输出的方法
Sep 25 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 应用程序的安全 -- 不能违反的四条安全规则
2006/11/26 PHP
joomla内置的表单验证功能使用方法
2010/06/11 PHP
php cookies中删除的一般赋值方法
2011/05/07 PHP
Smarty的配置与高级缓存技术分享
2012/06/05 PHP
php购物车实现方法
2015/01/03 PHP
PHP中实现crontab代码分享
2015/03/26 PHP
解析WordPress中的post_class与get_post_class函数
2016/01/04 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
Javascript实现的鼠标经过时播放声音
2010/05/18 Javascript
高亮显示web页表格行的javascript代码
2010/11/19 Javascript
js获取checkbox复选框选中的选项实例
2014/08/24 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
2015/04/06 Javascript
js实现表单检测及表单提示的方法
2015/08/14 Javascript
基于JavaScript怎么实现让歌词滚动播放
2015/11/03 Javascript
AngualrJS中每次$http请求时的一个遮罩层Directive
2016/01/26 Javascript
JS获取checkbox的个数简单实例
2016/08/19 Javascript
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
2017/12/13 Javascript
vue 使用自定义指令实现表单校验的方法
2018/08/28 Javascript
详解vue-router传参的两种方式
2018/09/10 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
vue祖孙组件之间的数据传递案例
2020/12/07 Vue.js
自动化Nginx服务器的反向代理的配置方法
2015/06/28 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
Django使用Channels实现WebSocket的方法
2019/07/28 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
2019/08/05 Python
使用Python将字符串转换为格式化的日期时间字符串
2019/09/01 Python
Python中os模块功能与用法详解
2020/02/26 Python
AmazeUI 等分网格的实现示例
2020/08/25 HTML / CSS
飞利浦比利时官方网站:Philips比利时
2016/08/24 全球购物
美国知名艺术画网站:Art.com
2017/02/09 全球购物
小学生竞选班长演讲稿
2014/04/24 职场文书
go语言中http超时引发的事故解决
2021/06/02 Golang
关于React Native 无法链接模拟器的问题
2021/06/21 Javascript
PostgreSQL基于pgrouting的路径规划处理方法
2022/04/18 PostgreSQL