matplotlib运行时错误:Python不作为框架安装

1mrurvl1  于 2022-12-30  发布在  Python
关注(0)|答案(6)|浏览(140)

这个问题以前在herehere中被问过,但是,这个解决方案并没有解决我的问题。
最初的错误是,当我尝试import matplotlib.pyplot时,我得到:
Traceback (most recent call last): File "", line 1, in File "/Users/XX/anaconda/lib/python2.7/site-packages/matplotlib/pyplot.py", line 114, in _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup() File "/Users/XX/anaconda/lib/python2.7/site-packages/matplotlib/backends/init.py", line 32, in pylab_setup globals(),locals(),[backend_name],0) File "/Users/XX/anaconda/lib/python2.7/site-packages/matplotlib/backends/backend_macosx.py", line 24, in from matplotlib.backends import _macosx 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 Working with Matplotlib in a virtual enviroment see 'Working with Matplotlib in Virtual environments' in the Matplotlib FAQ
我按照解决方案添加了一个~/.matplotlib/matplotlibrc文件,其中包含以下代码:backend: TkAgg。完成此操作后,我的错误更改为:
/用户/XX/水蟒资源库/python2.7/站点软件包/matplotlib/字体管理器. py:273:用户警告:Matplotlib正在使用fc-list构建字体缓存。这可能需要一些时间。warnings. warn('Matplotlib正在使用fc-list构建字体缓存。这可能需要一些时间。')objc [25120]:类TKApplication在/Users/XX/anaconda/lib/libtk8.5.dylib和/System/Library/Frameworks/Tk. framework/Versions/8.5/Tk中实现。将使用其中一个。哪个未定义。objc [25120]:类TKMenu在/Users/XX/anaconda/lib/libtk8.5.dylib和/System/Library/Frameworks/Tk. framework/Versions/8.5/Tk中实现。将使用其中一个。哪个未定义。objc [25120]:类TKContentView在/Users/XX/anaconda/lib/libtk8.5.dylib和/System/Library/Frameworks/Tk. framework/Versions/8.5/Tk中实现。将使用其中一个。哪个是未定义的。objc [25120]:类TKWindow同时在/Users/XX/anaconda/lib/libtk8.5.dylib和/System/Library/Frameworks/Tk. framework/Versions/8.5/Tk中实现。将使用其中的一个。未定义哪个。
我不知道该怎么解决。我没有使用虚拟机。
PS:我发现通过添加:
导入matplotlib
matplotlib.使用('TkAgg ')
import matplotlib.pyplot之前,它似乎是有效的。但是每次添加那两行代码都很烦人...
出什么事了,我该怎么补救?

6qftjkof

6qftjkof1#

我在virtualenv中运行我的脚本。Python版本是3.5。
添加一行:

backend: TkAgg

文件中:

~/.matplotlib/matplotlibrc

这就解决了问题。
如果你想知道为什么添加这个可以解决这个问题,你可以阅读定制matplotlib的后端。TkAgg解决了这个问题,因为它依赖于Tkinter。

kh212irz

kh212irz2#

下面的工作对我来说:

import matplotlib  
matplotlib.use('TkAgg')   
import matplotlib.pyplot as plt

参考:https://github.com/tensorflow/tensorflow/issues/2375

lf5gs5x2

lf5gs5x23#

我安装了Jupyter笔记本在virtualenv和下面的工作为我:

在控制台:

echo "backend: TkAgg" >> ~/.matplotlib/matplotlibrc
pip install matplotlib==2.1.0

在笔记本上:

import matplotlib

重新启动内核:

dataframe.plot.hist()
...

在我看来,它会修复错误。

6rqinv9w

6rqinv9w4#

我在virtualenv的python 2.7中遇到了同样的问题,我通过将matplotlib降级到2.1.0版来解决这些问题

yks3o0rb

yks3o0rb5#

我也遇到了同样的错误。我所做的是安装miniconda软件包并使用pythonw。Python应用程序已经安装在我的mac上了。安装就像打鸡蛋一样简单。只需在终端中猛击.sh文件。

vc9ivgsu

vc9ivgsu6#

我使用的是pyenv,因此matplotlibrc路径不在主目录中,所以我创建了以下脚本来找出路径并将backend更改为Tkagg

vim $(python -c "import os,matplotlib; print(os.path.join(os.path.dirname(matplotlib.__file__), 'mpl-data/matplotlibrc'));")

这个脚本应该可以在你的系统上使用任何python。

相关问题