详解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 相关文章推荐
wxpython 学习笔记 第一天
Mar 16 Python
详解Python中的相对导入和绝对导入
Jan 06 Python
Python使用pyodbc访问数据库操作方法详解
Jul 05 Python
python实现梯度下降算法
Mar 24 Python
python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析
Sep 05 Python
Python全面分析系统的时域特性和频率域特性
Feb 26 Python
Python如何读写CSV文件
Aug 13 Python
python字典通过值反查键的实现(简洁写法)
Sep 30 Python
Python爬虫如何破解JS加密的Cookie
Nov 19 Python
详解python中的异常和文件读写
Jan 03 Python
pycharm 实现调试窗口恢复
Feb 05 Python
Python  序列化反序列化和异常处理的问题小结
Dec 24 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
Yii调试SQL的常用方法
2014/07/09 PHP
详解WordPress开发中的get_post与get_posts函数使用
2016/01/04 PHP
thinkphp验证码的实现(form、ajax实现验证)
2016/07/28 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
2020/09/17 PHP
分析 JavaScript 中令人困惑的变量赋值
2007/08/13 Javascript
csdn 博客中实现运行代码功能实现
2009/08/29 Javascript
javascript getElementsByTagName
2011/01/31 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
探讨js字符串数组拼接的性能问题
2014/10/11 Javascript
全面理解闭包机制
2016/07/11 Javascript
ES6模块化的import和export用法方法总结
2017/08/08 Javascript
详解vue axios用post提交的数据格式
2018/08/07 Javascript
Vue.js点击切换按钮改变内容的实例讲解
2018/08/22 Javascript
vue实现打印功能的两种方法
2018/09/07 Javascript
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
redux.js详解及基本使用
2019/05/24 Javascript
js中比较两个对象是否相同的方法示例
2019/09/02 Javascript
微信小程序实现点击按钮后修改颜色
2019/12/05 Javascript
WEB前端性能优化的7大手段详解
2020/02/04 Javascript
python 解析XML python模块xml.dom解析xml实例代码
2014/02/07 Python
python中numpy包使用教程之数组和相关操作详解
2017/07/30 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
2017/12/18 Python
如何清空python的变量
2020/07/05 Python
pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题
2020/12/04 Python
Canvas制作旋转的太极的示例
2018/03/09 HTML / CSS
小学教研工作制度
2014/01/15 职场文书
《大作家的小老师》教学反思
2014/04/16 职场文书
2014年毕业演讲稿范文
2014/05/13 职场文书
幼儿园健康教育方案
2014/06/14 职场文书
感谢信模板大全
2015/01/23 职场文书
2015年行政部工作总结
2015/04/28 职场文书
单位收入证明范本
2015/06/18 职场文书
2016春季小学开学寄语
2015/12/03 职场文书
python实现简易名片管理系统
2021/04/11 Python
浅谈JS和Nodejs中的事件驱动
2021/05/05 NodeJs
html css3不拉伸图片显示效果
2021/06/07 HTML / CSS