簡體   English   中英

執行文件時出現cx_freeze ImportError

[英]cx_freeze ImportError when executing file

該程序旨在捕獲用戶前景窗口的標題欄,並將該標題以及日期時間附加到日志文件中。

當我在計算機上運行此代碼時,它可以工作,但是當我在另一台計算機上運行可執行文件時,出現以下錯誤:

Python檔案:

from win32gui import GetForegroundWindow, GetWindowText
from datetime import datetime
from time import sleep
from os.path import join

log_path = r'C:\Office Viewer\OV_Log.txt'

while True:

    window_name = GetWindowText(GetForegroundWindow())

    current_time = datetime.strftime(datetime.now(), '%Y/%m/%d_%H:%M:%S, ')

    txt = join('\n',current_time, window_name)

    with open(log_path, 'a') as log_file:
        log_file.write(txt)

    sleep(5)

setup.py:

import sys
from cx_Freeze import setup, Executable

base = None
if (sys.platform == "win32"):
    base = "Win32GUI"

#build_exe_options = {'include_files': ['re']}
build_exe_options = {"packages": ["re"]}

setup(  name = "Foreground Window Montior",
        version = "0.1",
        description = "Query the foreground window.",
        options = {'build_exe': build_exe_options},
        executables = [Executable("actWin_Query.py", base=base)])

錯誤是:

在此處輸入圖片說明

有人可以建議我解決該問題需要做什么嗎?

問題似乎是另一台計算機上不存在C:\\ Python33 \\等。 如何使程序完全依賴於.exe所在的目錄?

啊,打包用於Windows的獨立Python應用程序的樂趣! 任何告訴您這很容易的人都沒有嘗試過。 但是請不要放棄,如果您能夠克服最初的仰卧起坐的情況,那么結果通常是值得的。

凍結的可執行文件的錯誤消息中發出的路徑很可能是紅色鯡魚,您可以放心忽略。 看來您的應用程序(間接地)插入了一個cx_Freeze不會自動包含的cx_Freeze ,並且在目標計算機上不可用。 確切地找出缺少哪個 DLL是棘手的部分。

我親自嘗試運行您在Windows 7計算機上發布的setup.py來生成EXE和Python腳本的支持文件。 然后,我將捆綁軟件復制到Windows XP盒中。 不幸的是,它對我來說還不錯 ,所以我只能給您一般的故障排除建議。 這是我嘗試的方法:

  1. Dependency Walker下載到目標計算機,然后打開cx_Freeze生成的actWin_Query.exe二進制文件。
  2. 嘗試確定哪個DLL無法加載
  3. 回到您的構建機器上,使用cx_Freeze include-files選項引入缺少的DLL。
  4. 重建應用
  5. 嘗試在目標上再次運行

抱歉,我無法提供更多具體建議。 Windows / Python的組合可能太多,再加上32位/ 64位和C運行時變體,很難找出確切的原因。 但是我至少遇到過十二次類似的問題,而且似乎總是歸結為丟失的文件。

我最常遇到的情況是:我將在恰好安裝了Visual C ++ 2010 [Express]的計算機上構建應用程序,然后發現它無法在沒有 VC +的計算機上運行+2010已安裝。 在目標上安裝VC ++ 2010 Redistributable通常可以解決該問題,或者將其安裝捆綁到“超級安裝程序”中,該安裝程序還會同時安裝cx_Freeze生成的文件。 (我懷疑您看到的問題與此略有不同,只是在提及它時才對您有所幫助。)祝您好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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