繁体   English   中英

无法使用py2exe将两个.py文件编译成独立的可执行文件

[英]Cannot compile two .py files into stand alone executable using py2exe

我无法将两个.py文件编译成不需要使用py2exe安装的独立可执行文件。 我按照这篇文章中的说明进行操作,并按如下所示编写了安装文件:

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.pybackground_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_images.py缩短了

background_image = """
iVBORw0KGgoAAAANSUhEUgAA #... continues on
"""

将背景图像添加为数据文件:

setup(
    options = {'py2exe': {'bundle_files': 1, 'compressed': True}},
    windows=[{'script': "main.py"}],
    zipfile = None,
    data_files= [ ("prog",["background_image.py"])]
    )

不要使用bundle_files = 1,它有太多问题。 建议使用bundle_files = 2,然后使用例如InnoSetup创建一个文件安装程序。 如果仍不能解决问题,请提供main.py,bg_image.py和setup.py的自包含样本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM