странная ошибка py2exe

#python #py2exe

#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. Я почти уверен, что единственной релевантной частью этого сообщения об ошибке является AttributeError: 'module' object has no attribute 'compile'

2. В вашем коде есть ужасные вещи, такие как два виджета Ent и ent . Вы должны это проверить. В любом случае кажется, что print name печатается не список файлов, а содержимое чего-либо. Не могли бы вы, пожалуйста, упростить код до такой степени, чтобы он вел себя некорректно? Поскольку у вас теперь есть два отпечатка, это сбивает с толку. Ах! Я попробовал код и, в отличие от вас, у меня был напечатан список файлов. Проверьте также свой ввод!.

3. Нет, это не код, это только при запуске exe я получаю сообщение об ошибке

Ответ №1:

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