簡體   English   中英

py2exe生成的exe找不到pywinauto

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM