详解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 相关文章推荐
使用相同的Apache实例来运行Django和Media文件
Jul 22 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
Nov 30 Python
django使用html模板减少代码代码解析
Dec 12 Python
基于python绘制科赫雪花
Jun 22 Python
使用python脚本实现查询火车票工具
Jul 19 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
Jul 30 Python
pygame游戏之旅 创建游戏窗口界面
Nov 20 Python
python多进程读图提取特征存npy
May 21 Python
python全栈要学什么 python全栈学习路线
Jun 28 Python
django框架模型层功能、组成与用法分析
Jul 30 Python
使用Python函数进行模块化的实现
Nov 15 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
Dec 12 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下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
php实现网站插件机制的方法
2009/11/10 PHP
国产PHP开发框架myqee新手快速入门教程
2014/07/14 PHP
PHP函数func_num_args用法实例分析
2015/12/07 PHP
laravel-admin自动生成模块,及相关基础配置方法
2019/10/08 PHP
js实现精美的图片跟随鼠标效果实例
2015/05/16 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
2016/08/15 Javascript
js多个物体运动功能实例分析
2016/12/20 Javascript
vue上传图片组件编写代码
2017/07/26 Javascript
JS图片延迟加载插件LazyImgv1.0用法分析【附demo源码下载】
2017/09/04 Javascript
webpack项目调试以及独立打包配置文件的方法
2018/02/28 Javascript
vue写一个组件
2018/04/09 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
Python控制多进程与多线程并发数总结
2016/10/26 Python
Python实现针对json中某个关键字段进行排序操作示例
2018/12/25 Python
使用python实现ftp的文件读写方法
2019/07/02 Python
Python实现的企业粉丝抽奖功能示例
2019/07/26 Python
详解python中自定义超时异常的几种方法
2019/07/29 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
tensorflow 初始化未初始化的变量实例
2020/02/06 Python
俄罗斯名牌服装网上商店:UNIQUE FABRIC
2019/07/25 全球购物
台湾三立电视电商平台:电电购
2019/09/09 全球购物
abstract class和interface有什么区别
2013/08/04 面试题
大学生学习2014年全国两会心得体会
2014/03/12 职场文书
竞选部长演讲稿
2014/04/26 职场文书
工会趣味活动方案
2014/08/18 职场文书
2014年终个人工作总结
2014/11/07 职场文书
2015年建筑工程工作总结
2015/05/13 职场文书
2016年艾滋病宣传活动总结
2016/04/01 职场文书
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
2021/04/27 Python
SQL Server中的逻辑函数介绍
2022/05/25 SQL Server
delete in子查询不走索引问题分析
2022/07/07 MySQL
MySQL索引失效场景及解决方案
2022/07/23 MySQL