【发布时间】:2014-02-18 08:30:48
【问题描述】:
我正在使用 Py2exe 创建一个可执行文件作为 Windows 服务。
当我运行脚本时出现此错误:
文件“C:\TeamCity\buildAgent\work\582d895bd5b431ac\winpython\WinPython-32bit-2.7.3.3\python-2.7.3\lib\site-packages\py2exe\build_exe.py”,第 860 行,在 build_executable add_resource(ensure_unicode(exe_path), script_bytes, u"PYTHONSCRIPT", 1, True) RuntimeError: EndUpdateResource: 访问被拒绝。
这是对 py2exe 的调用:
setup(
name = NAME,
description = DESCRIPTION,
version = '1.0.133.43',
service = [{'modules':["ServiceLauncher"], 'cmdline':'pywin32'}],
zipfile=None,
options = {
"py2exe":{"packages":"encodings",
"includes":"win32com,win32service,win32serviceutil,win32event",
"excludes":"libiomp5md.dll"
},
},
)
这个问题只出现在构建机器上,它在我的开发电脑上运行良好。
我尝试为工作文件夹中的每个人设置完全控制,但它不起作用。
有什么想法吗?
谢谢。
【问题讨论】:
-
出于好奇,如果可能,请尝试使用较短的路径名。当 Windows 中的路径过长时,可能会出现奇怪的错误。
-
错误可能不是访问文件系统上的特定文件,而是访问其他一些功能,例如注册表项或服务管理器设置(因为我注意到您使用的是
ServiceLauncher,@ 987654323@等……)。您是否以管理员身份运行? -
我以管理员身份运行。我尝试了一条较短的路径,但没有运气......
-
如何检查是否是注册表或服务管理器的问题?
-
可以在“事件查看器”中检查您的 AUTH 日志,可能会很幸运。
标签: python windows-services py2exe