奇怪的py2exe错误

时间:2011-05-31 02:30:04

标签: python py2exe

我使用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并再次运行它并且它运行得足够好。

1 个答案:

答案 0 :(得分:1)

你不能在Python模块的名称中使用破折号。并且你不能调用Python模块zipfile,因为已经有一个standard library module具有该名称。如果在运行z.py之前将其重命名为py2exe,是否有效?