我无法将两个.py
文件编译成不需要使用py2exe安装的独立可执行文件。我按照this post post上的说明编写了我的设置文件,如下所示:
from distutils.core import setup
import py2exe
import sys, os
setup(
options = {'py2exe': {'bundle_files': 1, 'compressed': True}},
windows=[{'script': "main.py"}],
zipfile = None,
)
我的问题是,我有两个.py files
,我的主文件main.py
和我的background_image.py
文件(包含基本64个图像字符串)。因此,py2exe分别编译这两个文件,如此图所示:
因此,当我尝试运行主编译文件时收到以下错误。
Traceback (most recent call last):
File 'main.py", line 8, in <module>
ImportError: No Module named 'background_image'
这是我main.py
程序的简化版本;该程序绘制一个带背景的画布。
import tkinter as tk
from PIL import ImageTk, Image
import background_images
#image variables
background = images.background_image
close_icon = images.close_icon
#root window creation
root=tk.Tk()
root.geometry(600, 600)
#canvas widget
photo = tk.PhotoImage(data=background)
width, height = photo.width(), photo.height()
canvas = tk.Canvas(root, width=width, height=height, bd=-2)
canvas.pack()
canvas.create_image(0, 0, image=photo, anchor="nw")
root.mainloop()
这里缩短了background_images.py
background_image = """
iVBORw0KGgoAAAANSUhEUgAA #... continues on
"""
答案 0 :(得分:0)
将背景图像添加为数据文件:
setup(
options = {'py2exe': {'bundle_files': 1, 'compressed': True}},
windows=[{'script': "main.py"}],
zipfile = None,
data_files= [ ("prog",["background_image.py"])]
)
答案 1 :(得分:0)
不要使用bundle_files = 1,它有太多问题。建议使用bundle_files = 2然后使用例如InnoSetup创建一个文件安装程序。如果这还没有解决,请提供main.py的一个小的自包含样本,加上bg_image.py和setup.py。