我使用py2exe将此代码编译成可执行文件:
# 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()
当我运行它时,我在控制台中得到它:
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'
我很确定它的源代码来自我的其他音乐下载程序。 我已经尝试重新安装Python,重新安装py2exe并扫描病毒。
我使用的是Win 64 Python 2.7.1 Windows 7。
有谁知道我为什么会收到这个错误?
没关系,我再次将它再次编译成一个exe并再次运行它并且它运行得足够好。
答案 0 :(得分:1)
你不能在Python模块的名称中使用破折号。并且你不能调用Python模块zipfile
,因为已经有一个standard library module具有该名称。如果在运行z.py
之前将其重命名为py2exe
,是否有效?