在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之有容乃大的list(3)
Sep 15 Python
使用Python3 编写简单信用卡管理程序
Dec 21 Python
Python排序搜索基本算法之堆排序实例详解
Dec 08 Python
django 按时间范围查询数据库实例代码
Feb 11 Python
python中datetime模块中strftime/strptime函数的使用
Jul 03 Python
浅谈python3.x pool.map()方法的实质
Jan 16 Python
python调用c++ ctype list传数组或者返回数组的方法
Feb 13 Python
python爬虫爬取微博评论案例详解
Mar 27 Python
python设计tcp数据包协议类的例子
Jul 23 Python
python禁用键鼠与提权代码实例
Aug 16 Python
python实现通过flask和前端进行数据收发
Aug 22 Python
Python实现Appium端口检测与释放的实现
Dec 31 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中通过ADO调用Asscess数据库和COM程序
2006/10/09 PHP
Symfony2 session用法实例分析
2016/02/04 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
php 中的信号处理操作实例详解
2020/03/04 PHP
JS控件的生命周期介绍
2012/10/22 Javascript
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
批量修改标签css样式以input标签为例
2014/07/31 Javascript
jQuery后代选择器用法实例
2014/12/23 Javascript
jquery实现的点击翻书效果代码
2015/11/04 Javascript
javascript拖拽应用实例(二)
2016/03/25 Javascript
浅谈window.onbeforeunload() 事件调用ajax
2016/06/29 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
Angular HMR(热模块替换)功能实现方法
2018/04/04 Javascript
浅谈一种让小程序支持JSX语法的新思路
2019/06/16 Javascript
vue设置一开始进入的页面教程
2019/10/28 Javascript
你可能从未使用过的11+个JavaScript特性(小结)
2020/01/08 Javascript
node.js基于dgram数据报模块创建UDP服务器和客户端操作示例
2020/02/12 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
2020/08/06 Javascript
Vue使用screenfull实现全屏效果
2020/09/17 Javascript
[49:05]Newbee vs TNC 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
pygame学习笔记(3):运动速率、时间、事件、文字
2015/04/15 Python
python3实现公众号每日定时发送日报和图片
2018/02/24 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
2019/06/18 Python
python二进制读写及特殊码同步实现详解
2019/10/11 Python
Python for i in range ()用法详解
2020/09/18 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
2020/01/20 Python
python异常处理、自定义异常、断言原理与用法分析
2020/03/23 Python
python实现图像随机裁剪的示例代码
2020/12/10 Python
HTML5超炫酷粒子效果的进度条的实现示例
2019/08/23 HTML / CSS
英国优质鞋类专家:Robinson’s Shoes
2017/12/08 全球购物
大唐电信科技股份有限公司java工程师面试经历
2016/12/09 面试题
军训感想500字
2014/02/20 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书
详解Laravel服务容器的优势
2021/05/29 PHP