我正在使用py2app从python脚本创建一个独立的APP但是我遇到了一个问题,我希望你可以帮忙。
该脚本在很大程度上依赖于tkinter,主要是tkinter消息箱模块,它不是用tkinter导入的,而是必须使用以下方式单独导入:
from tkinter import messagebox
在我用来创建应用程序的setup.py文件中,我使用以下代码包含了python中使用的所有模块:
from setuptools import setup
APP = ['ch.py']
DATA_FILES = ['company.txt']
OPTIONS = {'argv_emulation': False, 'includes':['tkinter', 'requests', 'os'], 'iconfile': 'icon.icns'}
setup(
app=APP,
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
然而,当我编译应用程序时,一切都很完美,除了tkinter消息框,它们根本无法打开。我知道这是因为我没有在setup.py文件中专门导入它们。
有谁知道如何告诉setup.py文件包含“来自tkinter import messagebox?
答案 0 :(得分:2)
在大约一天的搜索后找到答案,基本上问题不在于tkinter messagebox模块。问题在于用于联系API的请求模块,然后返回信息以显示在消息框中。这就是消息框没有显示的原因,因为没有向API发出请求。
要解决此问题,您需要将“请求”模块添加到“包”以及“包含”,如下所示:
OPTIONS = {'argv_emulation': False, 'includes':['datetime', 'tkinter', 'requests'], 'packages':['requests'], 'iconfile':'icon.icns'}
希望这可以帮助同一场景中的任何人