【问题标题】:py2exe with different parts of appspy2exe 与应用程序的不同部分
【发布时间】:2013-08-08 01:27:23
【问题描述】:

假设我有 5 个不同的 python 文件: main.py, first.py, second.py, third.py, last.py

main.py 之后的每个文件都通过main.py 屏幕上的按钮执行不同的操作。我知道如何使用py2exe:

from distutils.core import setup
import py2exe

setup(console=['main.py'])

现在,我如何将所有这些编译成 EXE 文件,这样我仍然可以使用按钮打开其他 .py 文件?

【问题讨论】:

    标签: python python-2.7 tkinter py2exe


    【解决方案1】:

    您可以将每个文件单独编译成 EXE 文件,然后修改 main.py 中的代码以调用 EXE 文件而不是 .py 文件中的函数。

    【讨论】:

    • 唯一的问题是,在您调用first.py 之后,主屏幕现在冻结,而之前它不会出现问题。
    • 有没有办法通过 main.py 代码刷新屏幕?也许你可以在使用你编译的 first.py 之后重绘你的主屏幕。我需要有关您的 main.py 代码的更多信息,以便为您提供更准确的答案。
    【解决方案2】:

    没想到的是,我把其他文件导入到main.py文件中,变成了模块!当您使用 py2exe 时,它​​会编译模块。然后可以在程序中使用这些,例如:

    main.py

    from first '''Python File Name''' import *
    from Tkinter import *
    import tkMessageBox
    
    root = Tk()
    def helloCallBack():
          tkMessageBox.showinfo(hi_function('Joe'))
    
    B = Button(root, text ="Click Me", command = helloCallBack)
    
    B.pack()
    root.mainloop()
    

    first.py

    def hi_function(name):
       return 'Hello %s'%(name)
    

    Python 接受first.py 并将其作为模块导入。 Py2exe 获取 main.py 中的模块并将它们转换为 PYD 文件。所以,最主要的是,你不需要修改代码来调用 .exe 文件。简单地说,只需将其他 .py 文件作为模块导入,py2exe 将完成剩下的工作。

    我将把它放在社区 wiki 上供其他人学习。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-01
      • 2015-03-27
      • 2018-10-04
      • 2011-02-13
      • 1970-01-01
      • 2013-07-22
      • 1970-01-01
      相关资源
      最近更新 更多