странная ошибка py2exe - PullRequest
0 голосов
/ 31 мая 2011

Я превратил этот код в исполняемый файл с 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 Ответ

1 голос
/ 18 июля 2011

Вы не можете иметь тире в имени модуля Python.И вы не можете вызвать модуль Python zipfile, потому что уже есть стандартный библиотечный модуль с таким именем.Работает ли оно, если вы переименуете его в z.py до запуска py2exe?

...