gpt4 book ai didi

python - 执行文件时cx_freeze ImportError

转载 作者:太空宇宙 更新时间:2023-11-04 01:16:09 24 4
gpt4 key购买 nike

该程序旨在捕获用户前台窗口的标题栏,并将该标题连同日期时间附加到日志文件中。

当我在我的计算机上运行这段代码时,它工作正常,但是当我在另一台计算机上运行可执行文件时,我收到错误,您可以在下面看到:

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)

设置.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)])

错误是:

enter image description here

有人可以推荐我需要做什么来解决这个问题吗?

问题似乎是 C:\Python33\等...在另一台计算机上不存在。如何使程序完全依赖于 .exe 所在的目录?

最佳答案

啊,为 Windows 打包独立 Python 应用程序的乐趣!任何告诉您这很简单的人都没有尝试过。但不要放弃,如果您能通过最初的仰卧起坐,结果通常是值得的。

卡住的可执行文件的错误消息中发出的路径很可能是转移注意力的信息,您可以安全地忽略它。看起来您的应用程序正在(间接地)引入一个 DLL,该 DLL 不会被 cx_Freeze 自动包含,并且在目标机器上不可用。准确地找出哪个 DLL 丢失是棘手的部分。

我亲自尝试运行您在 Windows 7 机器上发布的 setup.py 来为您的 Python 脚本生成 EXE 和支持文件。然后我将 bundle 复制到 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] 的机器上构建应用程序,然后发现它无法在安装了 < em>没有 安装了 VC++2010。安装 VC++2010 Redistributable在目标上通常可以解决问题,或者将其安装捆绑到一个“ super 安装程序”中,该 super 安装程序还会安装 cx_Freeze 生成的文件。 (我怀疑您看到的问题与此略有不同,只是提一下以防有帮助。)祝您好运!

关于python - 执行文件时cx_freeze ImportError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24553439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com