详解pyenv下使用python matplotlib模块的问题解决


Posted in Python onNovember 29, 2018

先来描述一下我遇到的问题,在进行matplotlib学习时, plot.show() 总是无法成功运行,总是会报一个错:

RuntimeError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. See the Python documentation for more information on installing Python as a framework on Mac OS X. Please either reinstall Python as a framework, or try one of the other backends. If you are using (Ana)Conda please install python.app and replace the use of 'python' with 'pythonw'. See 'Working with Matplotlib on OSX' in the Matplotlib FAQ for more information.

其实意思很简单,就是我用的python并不是一个作为系统框架存在的,因为我为了方便管理python的版本,选择了 pyenv 这个管理工具,是一个独立出来的python环境。

尝试解决无果

参考网上众多的解决方法,例如以下两个最常见的:

方法一: 添加如下两行 代码解决:

>>> import matplotlib
>>> matplotlib.use('TkAgg')
##在import matplotlib下的模块,如pyplot等之前添加上面2句
>>> import matplotlib.pyplot as plt

方法二: 添加一下matplotlib的配置:

echo "backend: TkAgg" >> ~/.matplotlib/matplotlibrc

然而,以上这两种解决方式都***无法解决我的问题***,此时出现了第二个错误:

No module named '_tkinter'

说是找不到 tkinter 这个模块,找了网上大多数方法,全都是linux系统下的解决方案,我真的很好奇没有一个使用mac的用户出现我这样的问题吗? 究其原因,是因为,使用 pyenv 独立安装出来的python中并没有 tkinter 这个模块,于是尝试直接安装 tkinter ,结果竟然提示没有发现 tkinter 包!

pip3 install tkinter
Collecting tkinter
Could not find a version that satisfies the requirement tkinter (from versions: )
No matching distribution found for tkinter

来到这,我不禁陷入了深深的思考,这个 tkinter 到底是何方神圣,去了Python社区:https://docs.python.org/3/library/tkinter.html ,这才懂了他是啥玩意:

The tkinter package (“Tk interface”) is the standard Python interface to the Tk GUI toolkit. Both Tk and  tkinter are available on most Unix platforms, as well as on Windows systems. (Tk itself is not part of Python; it is maintained at ActiveState.) Running  python -m tkinter from the command line should open a window demonstrating a simple Tk interface, letting you know that  tkinter is properly installed on your system, and also showing what version of Tcl/Tk is installed, so you can read the Tcl/Tk documentation specific to that version.

说白了, tkinter 就是一个利用python做GUI(图形用户界面),它提供各种标准的 GUI 接口项,以利于迅速进行高级应用程序开发。

那么究竟去哪安装这个 tkinter 包,说实话到现在我也不知道如何利用 pyenv 去安装 tkinter ,那这个问题又该怎么解决呢?

曲线救国

既然 tkinter 这个GUI库没用,那换个库是不是就好了呢?结果的确和我想的一样,在我换了一个GUI库之后,他的确成功了。 具体操作如下: 在出现 Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. 这个错误的时候,在终端输入以下命令:

echo "backend : Qt5Agg" > ~/.matplotlib/matplotlibrc

如果提示你没有安装 PyQt 的话,你就需要执行

brew install pyqt

然后在执行

pip install PyQt5

这时候在运行你的代码就可以了。

详解pyenv下使用python matplotlib模块的问题解决

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之不要红头文件(1)
Sep 28 Python
Python中非常实用的一些功能和函数分享
Feb 14 Python
用Python展示动态规则法用以解决重叠子问题的示例
Apr 02 Python
python定时执行指定函数的方法
May 27 Python
关于Python中异常(Exception)的汇总
Jan 18 Python
win10环境下python3.5安装步骤图文教程
Feb 03 Python
简单谈谈Python中的json与pickle
Jul 19 Python
Linux下python3.7.0安装教程
Jul 30 Python
Python开启线程,在函数中开线程的实例
Feb 22 Python
opencv 图像滤波(均值,方框,高斯,中值)
Jul 08 Python
TensorFlow的自动求导原理分析
May 26 Python
python区块链持久化和命令行接口实现简版
May 25 Python
pycharm 取消默认的右击运行unittest的方法
Nov 29 #Python
selenium+python设置爬虫代理IP的方法
Nov 29 #Python
Pycharm取消py脚本中SQL识别的方法
Nov 29 #Python
利用python GDAL库读写geotiff格式的遥感影像方法
Nov 29 #Python
在python中利用GDAL对tif文件进行读写的方法
Nov 29 #Python
使用python判断你是青少年还是老年人
Nov 29 #Python
pycham查看程序执行的时间方法
Nov 29 #Python
You might like
php输入流php://input使用示例(php发送图片流到服务器)
2013/12/25 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
php eval函数一句话木马代码
2015/05/21 PHP
PHP开发之用微信远程遥控服务器
2018/01/25 PHP
YII分模块加载路由的实现方法
2018/10/01 PHP
Laravel框架源码解析之入口文件原理分析
2020/05/14 PHP
Array.prototype.slice 使用扩展
2010/06/09 Javascript
javascript正则匹配汉字、数字、字母、下划线
2014/04/10 Javascript
javascript学习笔记(三)BOM和DOM详解
2014/09/30 Javascript
JavaScript获取网页表单action属性的方法
2015/04/02 Javascript
BootStrap智能表单实战系列(十一)级联下拉的支持
2016/06/13 Javascript
浅析JavaScriptSerializer类的序列化与反序列化
2016/11/22 Javascript
Webpack优化配置缩小文件搜索范围
2017/12/25 Javascript
javascript中join方法实例讲解
2019/02/21 Javascript
八种Vue组件间通讯方式合集(推荐)
2020/08/18 Javascript
vue用ant design中table表格,点击某行时触发的事件操作
2020/10/28 Javascript
vue中activated的用法
2021/01/03 Vue.js
Python3.6正式版新特性预览
2016/12/15 Python
python获取多线程及子线程的返回值
2017/11/15 Python
django实现web接口 python3模拟Post请求方式
2019/11/19 Python
python将三维数组展开成二维数组的实现
2019/11/30 Python
Python插入Elasticsearch操作方法解析
2020/01/19 Python
pycharm中导入模块错误时提示Try to run this command from the system terminal
2020/03/26 Python
解决django框架model中外键不落实到数据库问题
2020/05/20 Python
python基于pexpect库自动获取日志信息
2021/02/01 Python
使用HTML5捕捉音频与视频信息概述及实例
2018/08/22 HTML / CSS
英国礼品和生活方式品牌:Treat Republic
2020/11/21 全球购物
人力资源部培训专员岗位职责
2014/01/02 职场文书
公司部门司机岗位职责
2014/01/03 职场文书
2014两会优秀的心得体会范文
2014/03/17 职场文书
5s标语大全
2014/06/23 职场文书
九不准学习心得体会
2016/01/23 职场文书
2016年学校十一国庆节活动总结
2016/04/01 职场文书
2016年清明节期间群众祭祀活动工作总结
2016/04/01 职场文书
整理Python中常用的conda命令操作
2021/06/15 Python
Golang的继承模拟实例
2021/06/30 Golang