我在Win7 32位上使用PyDev和Eclipse (Python2.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-file加载一些数据,创建一个绘图并将其存储为图像。现在,当我尝试在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错误。有谁知道怎么解决这个问题吗?首先要感谢大家!
发布于 2012-12-11 06:58:38
您已经在Windows的Program files文件夹下安装了Python,这可能会导致这样的问题:一个程序报告缺少文件,而另一个程序却在那里显示该文件。
发生这种情况的原因是,Windows中的UAC系统试图在不完全拒绝写入访问的情况下保护文件夹不被写入。相反,在某些情况下,它会将写入重定向到所谓的虚拟化文件夹。
将Python安装到默认位置C:\Python27可避免此问题。
https://stackoverflow.com/questions/13710991
复制