2012-12-04 53 views
2

我在Win7 32位上使用PyDev和Eclipse(Python版本是2.7.3)。我也安裝了Scipy和Matplotlib。現在,我試圖做的是將繪製的數據保存爲PDF文件。下面是一個代碼示例,雖然這不是我的問題真的很重要:python matplotlib當試圖繪製時出錯:matplotlib.gif找不到

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') 

的代碼非常簡單:從墊文件加載一些數據,創建一個情節,並將其存儲爲圖像。現在,試圖執行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錯誤。有沒有人有線索如何解決它?提前謝謝了!

+2

程序文件文件夾是'C:\ Programme'嗎?在那裏安裝Python可能會造成麻煩,特別是如果你安裝了一些沒有UAC提升的軟件包。 –

+0

重新安裝到C:\ Python27幫助,非常感謝! – user1876864

+0

聽起來像這個問題現在回答。 @JanneKarila你會介意用你的評論「回答」這個問題嗎? – pelson

回答

2

您已經在Windows下的Program files文件夾下安裝了Python,這可能會導致這種類型的問題,其中一個程序抱怨丟失的文件,而另一個程序在那裏顯示您的文件。

發生這種情況是因爲Windows中的UAC系統嘗試在不完全拒絕寫入訪問的情況下保護文件夾不被寫入。相反,它會在某些情況下將寫入重定向到所謂的虛擬化文件夾。

將Python安裝到默認位置C:\ Python27可以避免此問題。