[英]exe generated with py2exe can't find pywinauto
我一直在嘗試用py2exe打包我的應用程序。 該應用程序運行良好,但始終無法找到/使用pywinauto。 我一直在搜尋,但一無所獲,我現在完全迷路了...
這是打包腳本:
from distutils.core import setup setup( windows = ["mainForm.py"], data_files=[ ('', ['mainForm.ui']), ('', ['osk.sqlite']) ], options = { "py2exe":{ "optimize": 2, "includes": [ 'sip', 'pyttsx.drivers.sapi5', 'win32com', 'xml.etree.ElementTree', 'sqlite3', 'pywinauto', 'pywinauto.application', 'pywinauto.controls', 'pywinauto.tests', 'SendKeys' ], "typelibs": [('{C866CA3A-32F7-11D2-9602-00C04F8EE628}', 0, 5, 0)] } } )
這是運行exe時的輸出
Traceback (most recent call last): File "mainForm.py", line 129, in changeState File "mainForm.py", line 230, in setWriteMode File "mainForm.py", line 105, in FillApps File "WindowHandler.pyo", line 26, in getWindowList NameError: global name 'pywinauto' is not defined
我希望任何人都可以指出我正確的方向。
提前致謝
根據我的經驗,py2exe以一種奇怪的方式處理導入。 有時很難找到鏈接導入(例如,您導入WindowHandler
,后者會導入pywinauto
)。
我將從mainForm.py開始:
import sys
import WordOps
import Voice
import WindowHandler
from PyQt import QtCore, QtGui, uic
在setup.py中 ,從以下開始:
options={'py2exe':{
'includes': ['sip'],
'bundle_files': 1
}
}
在編譯為exe之前,請確保您的程序正常運行,然后嘗試運行setup.py。 當您在運行setup.py
(如您發布的內容)時開始出現錯誤時,請向mainForm.py添加更多導入。 因此對於該錯誤,您的新標題將如下所示:
import sys
import WordOps
import Voice
import WindowHandler
from PyQt import QtCore, QtGui, uic
# imports for py2exe
import pywinauto
它不會破壞您的代碼,因為它只是一個“未使用”的導入。 繼續這樣做,直到setup.py工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.