详解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 相关文章推荐
Python3实现的腾讯微博自动发帖小工具
Nov 11 Python
python中string模块各属性以及函数的用法介绍
May 30 Python
Python读csv文件去掉一列后再写入新的文件实例
Dec 28 Python
python 实现数组list 添加、修改、删除的方法
Apr 04 Python
python 返回列表中某个值的索引方法
Nov 07 Python
Python 最大概率法进行汉语切分的方法
Dec 14 Python
python读写配置文件操作示例
Jul 03 Python
Python爬虫学习之获取指定网页源码
Jul 30 Python
Flask框架钩子函数功能与用法分析
Aug 02 Python
Tensorflow实现多GPU并行方式
Feb 03 Python
Python数据可视化实现多种图例代码详解
Jul 14 Python
python七种方法判断字符串是否包含子串
Aug 18 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计算数组不为空元素个数的方法
2014/01/27 PHP
php实现改变图片直接打开为下载的方法
2015/04/14 PHP
关于PHP文件的自动运行方法分析
2016/05/13 PHP
PHP文件操作简单介绍及函数汇总
2020/12/11 PHP
PHP操作Redis常用命令的实例详解
2020/12/23 PHP
测试你的JS的掌握程度的代码
2009/12/09 Javascript
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
jQuery根据ID获取input、checkbox、radio、select的示例
2014/08/11 Javascript
Javascript基础_嵌入图像的简单实现
2016/06/14 Javascript
AngularJS实践之使用ng-repeat中$index的注意点
2016/12/22 Javascript
Angular 4依赖注入学习教程之组件服务注入(二)
2017/06/04 Javascript
jQuery与vue实现拖动验证码功能
2018/01/30 jQuery
优雅的处理vue项目异常实战记录
2019/06/05 Javascript
Javascript数组方法reduce的妙用之处分享
2019/06/10 Javascript
javascript 设计模式之组合模式原理与应用详解
2020/04/08 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
2020/08/28 Javascript
jquery实现穿梭框功能
2021/01/19 jQuery
简单的抓取淘宝图片的Python爬虫
2014/12/25 Python
python判断一个数是否能被另一个整数整除的实例
2018/12/12 Python
python实现树的深度优先遍历与广度优先遍历详解
2019/10/26 Python
Python解释器及PyCharm工具安装过程
2020/02/26 Python
利用Python自动化操作AutoCAD的实现
2020/04/01 Python
Python 实现敏感目录扫描的示例代码
2020/05/21 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
Python基于network模块制作电影人物关系图
2020/06/19 Python
在keras里实现自定义上采样层
2020/06/28 Python
用canvas做一个DVD待机动画的实现代码
2019/04/12 HTML / CSS
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
澳大利亚领先的运动鞋商店:Hype DC
2018/03/31 全球购物
写出一个方法实现冒泡排序
2016/07/08 面试题
工程造价管理专业大专生求职信
2013/10/06 职场文书
基层工作经历证明
2014/01/13 职场文书
2014年心理健康教育工作总结
2014/12/06 职场文书
实习科室评语
2015/01/04 职场文书
交通事故调解协议书
2015/05/20 职场文书
MySQL 数据 data 基本操作
2022/05/04 MySQL