我在Win7 32bit上使用PyDev和Eclipse(Python版本是2.7.3)。我也安装了Scipy和Matplotlib。现在,我要做的是将绘制的数据保存为pdf文件。这是一个代码示例,虽然它与我的问题无关:
import scipy as sp
import matplotlib.pyplot as plt
from scipy.io import loadmat
fname = "calc.mat"
data = loadmat(fname)
train_acc, test_acc = data['train'], data['test']
# plot results
fig = plt.figure(1,figsize=(12,4))
fig.clf()
# plot the error
ax1 = fig.add_subplot(1,2,1)
ax1.boxplot(sp.hstack((train_acc, test_acc)))
plt.savefig('bcc.pdf')
代码非常简单:从mat文件加载一些数据,创建一个绘图并将其存储为图像。现在,当尝试在Eclipse中执行代码时,我收到以下错误:
File "C:\Users\Kseniya\workspace\BrainComputerInterfacing\src\bci.py", line 223, in test2
fig = plt.figure(1,figsize=(12,4))
File "C:\Programme\Python27\lib\site-packages\matplotlib\pyplot.py", line 343, in figure
**kwargs)
File "C:\Programme\Python27\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 79, in new_figure_manager
return new_figure_manager_given_figure(num, figure)
File "C:\Programme\Python27\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 96, in new_figure_manager_given_figure
icon_img = Tk.PhotoImage(file=icon_fname)
File "C:\Programme\Python27\lib\lib-tk\Tkinter.py", line 3244, in __init__
Image.__init__(self, 'photo', name, cnf, master, **kw)
File "C:\Programme\Python27\lib\lib-tk\Tkinter.py", line 3200, in __init__
self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError: couldn't open "C:\Programme\Python27\lib\site-packages\matplotlib\mpl-data\images\matplotlib.gif": no such file or directory
似乎文件matplotlib.gif无法找到或打开,尽管它存在。如果我从控制台运行脚本,我没有收到任何错误,脚本终止没有任何错误,正确创建图像文件。所以,这似乎是一个PyDev错误。有没有人知道如何解决它?非常感谢提前!
答案 0 :(得分:2)
您已经在Windows的Program files文件夹下安装了Python,这可能导致一个程序抱怨丢失文件而另一个程序在那里显示文件的问题。
这是因为Windows中的UAC系统尝试在不完全拒绝写访问的情况下保护文件夹不被写入。相反,它会在某些情况下将写入重定向到所谓的虚拟化文件夹。
将Python安装到默认位置C:\ Python27可以避免此问题。