Câu hỏi của tôi cũng tương tự như câu hỏi đã được trả lời này (Missing tkinter attributes after converting to py2exe executable). Nhưng nó liên quan đến python 2.7, sử dụng Tkinter, thay vì tkinter.py2exe - thiếu mô-đun FileDialog sau khi biên dịch Tkinter gui thực thi
Tôi về cơ bản có cùng một sự cố khi chạy tệp thi hành của tôi sau khi biên dịch.
Traceback (most recent call last):
File "main.py", line 5, in <module>
File "gui.pyc", line 5, in <module>
File "matplotlib\backends\backend_tkagg.pyc", line 7, in <module>
File "six.pyc", line 199, in load_module
File "six.pyc", line 113, in _resolve
File "six.pyc", line 80, in _import_module
ImportError: No module named FileDialog
Nhưng khi tôi đang sử dụng Tkinter với python 2.7 nó có nghĩa là tôi không thể làm:
from tkinter import FileDialog
Tôi đã cố gắng sử dụng
from tkFileDialog import askopenfilename
và
import tkFileDialog
nhưng không ai làm việc cả. Tôi phải đối mặt với việc phải nâng cấp python lên 3 chỉ để có thể biên dịch đúng Tkinter? Hoặc là có một workaround tôi đang mất tích?
Đây là setup.py hiện tại của tôi
from distutils.core import setup
from glob import glob
import py2exe
import sys
import matplotlib
sys.path.append("C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\redist\\x86\\Microsoft.VC90.CRT")
data_files = [("Microsoft.VC90.CRT",
glob(r'C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\x86\Microsoft.VC90.CRT\*.*'))]
data_files.extend(matplotlib.get_py2exe_datafiles())
setup(
data_files=data_files,
windows=['main.py'],
packages=[''],
name='ZLA',
version='0.1 beta',
description='Troubleshooter.',
requires=['matplotlib', 'PIL', 'py2exe']
)
Tôi đã cố gắng để xác định tkFileDialog trong các tùy chọn: bao gồm: nhưng vẫn không có may mắn :(
options={'py2exe': {'includes': ['Tkinter', 'tkFileDialog']}, }
UPDATE:
tôi thấy câu trả lời sau một số điều tra. Bạn có thể thực sự chỉ
import FileDialog
UPDATE2:
Nếu bạn muốn tránh sự "không sử dụng nhập khẩu" thông tin phản hồi một số bộ dò lỗi và IDE cung cấp cho bạn, bạn có thể thêm các gói FileDialog vào từ điển gói py2exe thay
options={'py2exe': {'packages': ['FileDialog']},}
Có lẽ ai đó có thể giúp làm rõ lý do tại sao thích hợp hơn?
Cập nhật 2 hoạt động rất tốt đối với tôi. Cảm ơn bạn. –