Python 不能;导入matplotlib.pyplot作为plt“;虚拟的
我正在虚拟环境中使用flask。我可以用pip安装matplotlib,并且可以在Python会话中导入matplotlib。但是,当我将其作为Python 不能;导入matplotlib.pyplot作为plt“;虚拟的,python,macos,matplotlib,flask,virtualenv,Python,Macos,Matplotlib,Flask,Virtualenv,我正在虚拟环境中使用flask。我可以用pip安装matplotlib,并且可以在Python会话中导入matplotlib。但是,当我将其作为 matplotlib.pyplot as plt 我得到以下错误: >>> import matplotlib.pyplot as plt Traceback (most recent call last): File "<stdin>", line 1, in <module> File "//a
matplotlib.pyplot as plt
我得到以下错误:
>>> import matplotlib.pyplot as plt
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "//anaconda/envs/myenv/lib/python2.7/site-packages/matplotlib/pyplot.py", line 109, in <module>
_backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
File "//anaconda/envs/myenv/lib/python2.7/site-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup
globals(),locals(),[backend_name],0)
File "//anaconda/envs/myenv/lib/python2.7/site-packages/matplotlib/backends/backend_macosx.py", line 24, in <module>
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.
>>将matplotlib.pyplot作为plt导入
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“//anaconda/envs/myenv/lib/python2.7/site packages/matplotlib/pyplot.py”,第109行,在
_后端模块、新图形管理器、绘图(如果交互式),显示=pylab\u设置()
pylab_设置中的文件“//anaconda/envs/myenv/lib/python2.7/site packages/matplotlib/backends/__init___;.py”,第32行
全局变量(),局部变量(),[backend_name],0)
文件“//anaconda/envs/myenv/lib/python2.7/site packages/matplotlib/backends/backend_macosx.py”,第24行,在
从matplotlib.backends导入_macosx
RuntimeError:Python未作为框架安装。如果Python未作为框架安装,Mac OS X后端将无法正常工作。有关在Mac OS X上安装Python作为框架的更多信息,请参阅Python文档。请重新安装Python作为框架,或者尝试其他后端。
我不明白为什么它要求我安装Python作为框架。它不是已经存在了吗?“将Python作为框架安装”是什么意思?如何安装 我使用pip安装matplotlib时也遇到了类似的问题。默认情况下,它安装了最新版本1.5.0。然而,我有另一个使用Python 3.4和matplotlib 1.4.3的虚拟环境,当我导入matplotlib.pyplot时,这个环境运行良好。因此,我使用以下工具安装了matplotlib的早期版本:
cd path_to_virtual_environment # assume directory is called env3
env3/bin/pip install matplotlib==1.4.3
$ cd ~/.matplotlib
$ nano matplotlibrc
我知道这只是一个解决办法,但它对我来说是一个短期修复。尽管大多数答案似乎指向修补
激活脚本以使用系统python,我很难做到这一点,对我来说,一个简单的解决方案——尽管有点棘手——是将matplotlib安装到全局环境中,并使用它而不是virtualenv实例。您可以通过使用--system site packages标志(如virtualenv--system site packages foo
)创建virtualenv,或者在pip安装时使用通用标志(如pip install-U matplotlib
),您可以使用后端Agg
转到User/yourname/.matplotlib
并打开/创建matplotlibrc
并添加以下行backend:Agg
,它应该适合您 我得到了同样的错误,并尝试了乔纳森的答案:
您可以使用后端Agg解决此问题
转到User/yourname/.matplotlib
并打开/创建matplotlibrc
并添加以下行backend:Agg
,它应该适合您
我运行程序,没有错误,但也没有绘图,我尝试了后端:Qt4Agg
,
打印出我还没有安装PyQt4
然后我尝试了另一个后端:后端:TkAgg
,它可以工作
所以也许我们可以尝试不同的后端,有些可以工作,或者安装需要的包,比如PyQt4
下面是一个示例python代码段,您可以尝试并测试matplotlib
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [0, 3, 7])
plt.show()
这对我有用。如果已在虚拟环境中使用pip安装matplotlib,则只需键入以下内容:
cd path_to_virtual_environment # assume directory is called env3
env3/bin/pip install matplotlib==1.4.3
$ cd ~/.matplotlib
$ nano matplotlibrc
然后,在其中写入后端:TkAgg
。
如果需要更多信息,请转到解决方案链接 如果不想设置.matplotib/matplotlibrc
配置文件,可以通过在导入matplotlib
之后和导入matplotlib.pyplot
之前的运行时设置'Agg'
后端来避免此问题:
In [1]: import matplotlib
In [2]: matplotlib.use('Agg')
In [3]: import matplotlib.pyplot as plt
In [4]: fig, ax = plt.subplots(1, 1)
In [5]: import numpy as np
In [6]: x = np.linspace(-1., 1.)
In [7]: y = np.sin(x)
In [8]: ax.plot(x, y)
Out[8]: [<matplotlib.lines.Line2D at 0x1057ecf10>]
In [9=]: fig.savefig('myplot.png')
[1]中的:导入matplotlib
在[2]中:matplotlib.use('Agg')
在[3]中:将matplotlib.pyplot作为plt导入
[4]中:图,ax=plt.子图(1,1)
在[5]中:将numpy作为np导入
在[6]中:x=np.linspace(-1,1.)
In[7]:y=np.sin(x)
[8]中:轴图(x,y)
Out[8]:[]
在[9=]中:fig.savefig('myplot.png')
一个干净简单的解决方案是创建一个内核,将PYTHONHOME
设置为VIRTUAL\u ENV
,然后使用系统Python可执行文件(而不是virtualenv中的可执行文件)
如果你想自动创建这样一个内核,你可以使用这个脚本。非常简单。谢谢!一行代码:echo“backend:TkAgg”>~/.matplotlib/matplotlibrc
或echo”backend:Agg”>~/.matplotlib/matplotlibrc
即使以root用户身份尝试此操作,也不会出现“无此类文件或目录错误”。这个文件应该有某种扩展名吗?(在mac 10.12.3上)matplotlibrc最初缺失。如果找不到,就创建它。文件名应该是什么?你在什么操作系统中这么做?是MacOS。我相信它是10.6。我正在使用macOS high sierra,当我使用TkAgg时,它表明我没有安装tkinter软件包。当我使用Qt4Agg或Qt5Agg时,它表明我没有安装PyQt。如果我使用brew安装PyQt
安装PyQt,则没有帮助。最后,我必须在virtualenv中安装它,“激活virtualenv,然后pip安装PyQt5
”。这很有效,谢谢!我喜欢这个答案!对我来说,我有一个matplotlib==2.1.0的Python2.7PyEnv环境和matplotlib==2.1.1的Python3.6环境。我将2.7的matplotlib升级到了2.1.1,问题得到了解决。对我来说也很有效。救了我一天:-)非常感谢!