簡體   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