Gab*_*iel 5 python plot backend matplotlib virtualenv
我已经安装了一个virtualenv与pyenv使用Python v2.7.12。在这个 virtualenv 中,我matplotlib通过以下方式安装了v1.5.1:
pip install matplotlib
Run Code Online (Sandbox Code Playgroud)
没有问题。问题是一个简单的
import matplotlib.pyplot as plt
plt.scatter([], [])
plt.show()
Run Code Online (Sandbox Code Playgroud)
脚本无法生成绘图窗口。我在 virtualenv 中看到的后端使用:
import matplotlib
print matplotlib.rcParams['backend']
Run Code Online (Sandbox Code Playgroud)
is agg,这显然是问题的根本原因。如果我在系统范围的安装中检查后端,我会得到Qt4Agg(运行时上面的脚本显示一个绘图窗口就好了)。
SO中已经有几个类似的问题,我已经尝试了所有这些问题中给出的解决方案。
尝试使用--system-site-packages选项创建 virtualenv 。不行。
如何确保 Python 3 virtualenv 中的 matplotlib 使用 TkAgg 后端?
已安装sudo apt install tk-dev,然后使用 重新安装pip --no-cache-dir install -U --force-reinstall matplotlib。后端仍然显示为agg.
这里给出的解决方案是“安装一个 GUI 库(Tkinter、GTK、QT4、PySide、Wx 之一)”。我不知道该怎么做。此外,如果我使用:
import matplotlib.rcsetup as rcsetup
print(rcsetup.all_backends)
Run Code Online (Sandbox Code Playgroud)
我得到:
[u'GTK', u'GTKAgg', u'GTKCairo', u'MacOSX', u'Qt4Agg', u'Qt5Agg', u'TkAgg', u'WX', u'WXAgg', u'CocoaAgg', u'GTK3Cairo', u'GTK3Agg', u'WebAgg', u'nbAgg', u'agg', u'cairo', u'emf', u'gdk', u'pdf', u'pgf', u'ps', u'svg', u'template']
Run Code Online (Sandbox Code Playgroud)
这意味着所有这些后端都在我的系统中可用(?)。
尽管我调用了 pyplot.show(),但 matplotlib 没有显示我的绘图
我的matplotlibrc文件显示了这一行:
backend : Qt4Agg
Run Code Online (Sandbox Code Playgroud)
我不知道如何让 virtualenv 意识到这一点?
一些解决方案涉及创建指向matplotlib(此处和此处)的系统版本的链接,我不想这样做。我想使用matplotlib安装在virtualenv.
如果我尝试将后端设置为:
import matplotlib
matplotlib.use('GTKAgg')
Run Code Online (Sandbox Code Playgroud)
我得到ImportError: Gtk* backend requires pygtk to be installed(与 相同GTK)。但是,如果我这样做sudo apt-get install python-gtk2 python-gtk2-dev,我会看到它们都已安装。
使用:
import matplotlib
matplotlib.use('Qt4Agg')
Run Code Online (Sandbox Code Playgroud)
( 或Qt5Agg) 结果ImportError: Matplotlib qt-based backends require an external PyQt4, PyQt5, or PySide package to be installed, but it was not found.不确定我是否应该安装一些包?
使用:
import matplotlib
matplotlib.use('TkAgg')
Run Code Online (Sandbox Code Playgroud)
结果ImportError: No module named _tkinter,但sudo apt-get install python-tk说它已安装。
使用:
import matplotlib
matplotlib.use('GTKCairo')
Run Code Online (Sandbox Code Playgroud)
结果在ImportError: No module named gtk. 所以我尝试sudo apt-get install libgtk-3-dev但它说它已经安装了。
如何让 virtualenv 使用与我的系统正在使用的后端相同的后端?
| 归档时间: |
|
| 查看次数: |
4092 次 |
| 最近记录: |