2011-05-31 92 views
0

我做了這個代碼轉換成一個可執行文件py2exe:從我的其他怪異py2exe錯誤

Traceback (most recent call last): 
    File "zip.py", line 3, in <module> 
    File "zipfile.pyc", line 462, in <module> 
    File "zipfile.pyc", line 474, in ZipExtFile 
AttributeError: 'module' object has no attribute 'compile' 

Im相當肯定它的源代碼:

# File: zipfile-example-1.py 
from Tkinter import * 
import zipfile 
import os 
import glob 
Admin = Tk() 
Admin.configure(bg='grey') 
La = Label(Admin,bg='grey', text='Dir to back up.') 
La.pack() 
Ent = Entry(Admin, bg='grey') 
Ent.pack() 
la = Label(Admin,bg='grey', text='Zip file name.') 
la.pack() 
ent = Entry(Admin,bg='grey') 
ent.pack() 

def zipdir(): 
    fi = ent.get() 
    fii = fi+'.zip' 
    pl = Ent.get() 
    pll = pl+'/*' 
    file = zipfile.ZipFile(fii, "w") 

    # list filenames 
    for name in glob.glob(pll): 
     print name 
     file.write(name,os.path.basename(name),zipfile.ZIP_DEFLATED) 

    file.close() 
    file = zipfile.ZipFile(fii, "r") 
    for info in file.infolist(): 
     print info.filename, info.date_time, info.file_size, info.compress_size 

Bu = Button(Admin,text='Backup.',command=zipdir) 
Bu.pack(side=RIGHT) 
Admin.mainloop() 

當我運行它,我得到這個在控制檯音樂下載程序。 我已經嘗試重新安裝Python,重新安裝py2exe並掃描病毒。

我使用的運64的Python 2.7.1的Windows 7

有誰知道爲什麼我得到這個錯誤?

沒關係,我再次將它編譯成exe後運行它,它足夠的工作。

+2

我敢肯定,這個錯誤信息的唯一相關部分是'AttributeError:'module'object has no attribute'compile'' – 2011-05-31 02:40:23

+2

你的代碼有一些可怕的東西,比如兩個部件'Ent'和'ent '。你應該檢查一下。無論如何,'print name'似乎並不是打印文件列表,而是打印內容。你可以簡化代碼,只是爲了表明它不正確?因爲你現在有兩張照片是令人困惑的。啊!我嘗試了代碼,不像你,我得到了打印文件的列表。檢查你的輸入! – joaquin 2011-05-31 06:02:08

+0

不,它不是代碼它只有當我運行的exe我得到錯誤消息 – 2011-06-01 01:54:53

回答

1

您不能在Python模塊的名稱中使用破折號。而且你不能調用Python模塊zipfile,因爲已經有一個standard library module這個名字。如果在運行py2exe之前將其重命名爲z.py,它會起作用嗎?