python - Matplotlib 在 Ubuntu 14.04 上需要 sudo

标签 python linux ubuntu matplotlib

我最近换了一台新笔记本电脑。安装 Ubuntu 14.04 LTS 和我以前系统包含的所有软件包后,我将所有文件从旧系统复制到新系统。

每当我尝试执行任何调用了 matplotlib 的 python 代码时,我都会收到以下错误

File "Q1.py", line 2, in <module>
import matplotlib.pyplot as plt

File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 24, in <module>
import matplotlib.colorbar

File "/usr/lib/pymodules/python2.7/matplotlib/colorbar.py", line 29, in <module>
import matplotlib.collections as collections

File "/usr/lib/pymodules/python2.7/matplotlib/collections.py", line 23, in <module>
import matplotlib.backend_bases as backend_bases

File "/usr/lib/pymodules/python2.7/matplotlib/backend_bases.py", line 50, in <module>
import matplotlib.textpath as textpath

File "/usr/lib/pymodules/python2.7/matplotlib/textpath.py", line 11, in <module>
import matplotlib.font_manager as font_manager

File "/usr/lib/pymodules/python2.7/matplotlib/font_manager.py", line 1356, in <module>
_rebuild()

File "/usr/lib/pymodules/python2.7/matplotlib/font_manager.py", line 1343, in _rebuild
pickle_dump(fontManager, _fmcache)

File "/usr/lib/pymodules/python2.7/matplotlib/font_manager.py", line 939, in pickle_dump
with open(filename, 'wb') as fh:

IOError: [Errno 2] No such file or directory: '/tmp/matplotlib-skarthikkrishna/fontList.cache'

根据我的尝试,这个问题似乎突然出现了,因为代码无法访问/tmp/来写入它。当我在执行命令前添加一个 sudo 标签时,代码运行得很好。

我很好奇为什么现在会发生这种情况。我的新旧笔记本电脑上的所有包,尤其是 pyplot 包都是一样的。我没有错过安装任何软件包,也没有任何更新未反射(reflect)在其中一个系统中。代码在我的旧笔记本电脑上运行得很好。它拒绝在新的没有 sudo 的情况下工作。如果有人可以帮助我,我将不胜感激

一些相关的细节:

两个系统都运行 Ubuntu 14.04 LTS,最后一次升级是在 2014 年 12 月 26 日。

我在两个系统上都运行 Python 2.7.6。 [这是我大部分类(class)作业的强制要求]

两个系统上安装的 Matplotlib 版本都是 1.3.1

编辑:

ls -ld/tmp/的输出是

drwxrwxrwt 4 root root 4096 Dec 27 18:45 /tmp/

ls -ld/tmp/matplotlib-skarthikkrishna 的输出是

ls: cannot access /tmp/matplotlib-skarthikkrishna: No such file or directory

如果相关的话,使用和不使用 sudo 的输出保持相同。

最佳答案

这是解决方案,对我有用:

sudo rm -rf $HOME/.cache/matplotlib

感谢 aberaud commented on Jul 14, 2015

I had the issue, fixed it by deleting $HOME/.cache/matplotlib that happened to be owned by root.

关于python - Matplotlib 在 Ubuntu 14.04 上需要 sudo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38531149/

相关文章:

python - 重采样后获取 pandas 第 n 个条目(在 'DatetimeIndexResampler' 对象上)

linux - 如何在不终止正在运行的作业的情况下终止 GNU parallel?

ubuntu - 将 LXD 集群添加到 MAAS 时遇到问题

java - 为什么以下代码在运行时不打印值?

python - 使用编解码器以正确的编码读取文件: TypeError

python - 如何将Python变量转换为等效的cobol组变量?

linux - 无法 ping 通在 Qemu 上运行的 Linux 镜像

php - git-shell 命令中的 "Run with no arguments or with -c cmd"是什么意思?

python - 如何在 ubuntu 16.04 64 位上安装 Pyjnius

python - 在单个 Pandas Dataframe 列中将字符串与数字分开并创建两个新列