#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
?