2016-09-22 87 views
1

我正在使用py2app從python腳本創建一個獨立的APP,但是我遇到了一個問題,我希望你可以幫忙。Py2app - 添加「從x導入y」到setup.py

腳本在很大程度上依賴於Tkinter的,主要是Tkinter的消息框模塊,這是不符合Tkinter的進口,而是具有使用單獨的輸入:

from tkinter import messagebox 

在我的setup.py文件,我用它來創建該應用程序,我已經包括了在蟒蛇中使用的所有模塊,使用此代碼:

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的進口消息框?

非常感謝!

回答

1

找到答案大約一天的搜索之後,基本問題」不是個t用tkinter messagebox模塊,問題在於用於聯繫API的請求模塊,然後返回信息顯示在消息框中,這就是爲什麼messagebox沒有顯示,因爲沒有對API進行請求。

要解決此問題,您需要將請求模塊添加到「包」a一報還一爲「包括」,像如下:

OPTIONS = {'argv_emulation': False, 'includes':['datetime', 'tkinter', 'requests'], 'packages':['requests'], 'iconfile':'icon.icns'} 

希望這有助於任何人在相同的情況下

+0

我可以知道請求和py2app您使用的是哪個版本?當程序編譯到應用程序中時,我似乎無法獲得工作請求,但應用程序GUI啓動得很好。我正在使用請求2.18.4和py2app 0.10。謝謝! –