我正在使用Py2exe创建一个可执行文件作为窗口服务。
当我运行脚本时,我会得到以下错误:
文件"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"
},
},
)这个问题只发生在构建机器上,它在我的dev pc上运行良好。
我曾尝试将“完全控制”设置为“工作”文件夹中的每个人,但它不起作用。
有什么想法吗?
谢谢。
发布于 2014-02-19 15:18:22
经过两天的调查,我们在IT人员的帮助下找到了一个解决方案。
当py2exe试图修改可执行文件、添加元数据和\或图标时,就会出现这个问题。
根本原因?简单..。抗病毒。
它认为该操作是一种威胁,并导致访问拒绝错误。
谢谢大家!
发布于 2017-06-23 14:44:55
正如其他人所指出的,问题很可能是杀毒程序阻止对.exe文件的写访问。如果不能或不希望禁用防病毒,setup.py文件开头的以下修补程序将重命名该文件,以避免修改前的.exe扩展名,并在修改后重命名它。
import py2exe.py2exe_util
from py2exe.py2exe_util import add_resource
import os
def add_resource_patch(name, *arg, **kwarg):
name_tmp = name + '.tmp'
os.rename(name, name_tmp)
add_resource(name_tmp, *arg, **kwarg)
os.rename(name_tmp, name)
py2exe.py2exe_util.add_resource = add_resource_patch
from distutils.core import setup
import py2exe
setup(...)发布于 2014-10-29 20:00:00
我发现,断开与互联网的连接足以解决问题(尽管这可能与禁用所提议的防病毒解决方案有关)。
https://stackoverflow.com/questions/21848033
复制相似问题