我在Win7 32位上使用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文件加载一些数据,创build一个图并将其作为图像存储。 现在,当试图在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文件无法find或打开,虽然它是存在的。 如果我从控制台运行脚本,我不会有任何错误,脚本终止没有任何错误,正确地创build图像文件。 所以,这似乎是一个PyDev错误。 有没有人有一个线索如何解决它? 提前谢谢了!
您已经在Windows的Program files文件夹下安装了Python,这可能会导致这样的问题,即一个程序抱怨丢失的文件,而另一个程序在那里显示您的文件。
发生这种情况是因为Windows中的UAC系统尝试在不完全拒绝写入访问的情况下防止文件夹被写入。 相反,在某些情况下,它会将写入重定向到所谓的虚拟文件夹。
将Python安装到默认位置C:\ Python27可以避免这个问题。