故障排除#
获取 Matplotlib 版本#
要找出您的 Matplotlib 版本号,请将其导入并打印
__version__
属性:
>>> import matplotlib
>>> matplotlib.__version__
'0.98.0'
matplotlib
安装位置#
您可以通过导入 Matplotlib 并打印__file__
属性来找到安装的目录:
>>> import matplotlib
>>> matplotlib.__file__
'/home/jdhunter/dev/lib64/python2.5/site-packages/matplotlib/__init__.pyc'
matplotlib
配置和缓存目录位置#
每个用户都有一个 Matplotlib 配置目录,其中可能包含一个
matplotlibrc文件。要找到您的matplotlib/
配置目录,请使用
matplotlib.get_configdir()
:
>>> import matplotlib as mpl
>>> mpl.get_configdir()
'/home/darren/.config/matplotlib'
在类 Unix 系统上,此目录通常位于您的
HOME
目录下的.config/
目录。
此外,用户有一个缓存目录。在类 Unix 系统上,默认情况下它与配置目录是分开的。要找到您的
.cache/
目录,请使用matplotlib.get_cachedir()
:
>>> import matplotlib as mpl
>>> mpl.get_cachedir()
'/home/darren/.cache/matplotlib'
在 Windows 上,config 目录和 cache 目录是相同的
,默认在你的or目录下:Documents and Settings
Users
>>> import matplotlib as mpl
>>> mpl.get_configdir()
'C:\\Documents and Settings\\jdhunter\\.matplotlib'
>>> mpl.get_cachedir()
'C:\\Documents and Settings\\jdhunter\\.matplotlib'
如果您想使用不同的配置目录,您可以通过在您的MPLCONFIGDIR
环境变量 - 请参阅
在 Linux 和 macOS 中设置环境变量。注意
MPLCONFIGDIR
设置配置目录和缓存目录的位置。
获得帮助#
有许多很好的资源可以帮助您获得 Matplotlib 的帮助。您的问题很可能已经被问到:
邮件列表存档。
Stackoverflow 问题标记为 matplotlib。
如果您无法通过搜索找到问题的答案,请在您的电子邮件中向邮件列表提供以下信息:
您的操作系统(Linux/Unix 用户:发布 的输出)。
uname -a
Matplotlib 版本:
python -c "import matplotlib; print(matplotlib.__version__)"
您从哪里获得 Matplotlib(例如,您的 Linux 发行版的包、GitHub、PyPI 或Anaconda)。
matplotlibrc
对文件 的任何自定义(请参阅使用样式表和 rcParams 自定义 Matplotlib)。如果问题是可重现的,请尝试提供一个最小的、独立的 Python 脚本来演示该问题。这是关键的一步。如果您不能发布一段我们可以运行并重现您的错误的代码,那么获得帮助的机会就会大大减少。很多时候,仅仅尝试将代码最小化到产生错误的最小位就可以帮助您在代码中找到导致问题的错误。
Matplotlib 通过
logging
库提供调试信息,以及设置日志级别的辅助函数:可以调用plt.set_loglevel("info") # or "debug" for more info
获取此调试信息。
模块中的标准功能
logging
也适用;例如,logging.basicConfig(level="DEBUG")
甚至可以在导入 Matplotlib 之前调用(这对于获取 Matplotlib 导入期间发出的日志信息特别必要),或者将自定义处理程序附加到“matplotlib”记录器。如果您使用自定义日志记录配置,这可能很有用。
如果您自己编译 Matplotlib,还请提供:
您对
setup.py
或所做的任何更改setupext.py
。的输出:
rm -rf build python setup.py build
构建输出的开头包含许多有关您的平台的详细信息,这些详细信息对于 Matplotlib 开发人员诊断您的问题很有用。
您的编译器版本——例如,.
gcc --version
在您发送到邮件列表的第一封电子邮件中包含这些信息将节省大量时间。
与在错误跟踪器中提交错误相比,写入邮件列表的响应速度可能会更快。大多数开发人员仅定期检查错误跟踪器。如果您的问题已被确定为错误并且无法快速解决,则可能会要求您在跟踪器中提交错误,以免问题丢失。
最近 git 版本的问题#
首先确保你有一个干净的构建和安装(参见如何完全删除 Matplotlib),获取最新的 git 更新,安装它并在调试模式下运行一个简单的测试脚本:
rm -rf /path/to/site-packages/matplotlib*
git clean -xdf
git pull
python -m pip install -v . > build.out
python -c "from pylab import *; set_loglevel('debug'); plot(); show()" > run.out
并发布build.out
到matplotlib-devel
邮件列表(请不要将 git 问题发布到run.out
用户列表)。
当然,您会想要清楚地描述您的问题、您的期望和您得到的,但通常干净的构建和安装会有所帮助。另请参阅获得帮助。