Python 使用Py2exe拒绝访问

Python 使用Py2exe拒绝访问,python,windows-services,py2exe,Python,Windows Services,Py2exe,我正在使用Py2exe创建一个作为windows服务的可执行文件 运行脚本时,出现以下错误: 文件“C:\TeamCity\buildAgent\work\582d895bd5b431ac\winpython\winpython-32bit-2.7.3.3\python-2.7.3\lib\site packages\py2exe\build\u exe.py”,第860行,位于build\u可执行文件中 添加\u资源(确保\u unicode(exe\u路径)、脚本\u字节、u“PYTHONS

我正在使用Py2exe创建一个作为windows服务的可执行文件

运行脚本时,出现以下错误:

文件“C:\TeamCity\buildAgent\work\582d895bd5b431ac\winpython\winpython-32bit-2.7.3.3\python-2.7.3\lib\site packages\py2exe\build\u exe.py”,第860行,位于build\u可执行文件中 添加\u资源(确保\u unicode(exe\u路径)、脚本\u字节、u“PYTHONSCRIPT”、1、True) 运行时错误: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"
        },
        },
    )
这个问题只发生在构建机器上,它在我的开发pc上运行良好

我试图对工作文件夹中的每个人设置完全控制,但不起作用

有什么想法吗


谢谢。

经过两天的调查,我们在IT员工的帮助下找到了解决方案

当py2exe尝试通过添加元数据和\或图标来修改可执行文件时,会出现此问题

根本原因是什么?简单的。。。防病毒

它认为该操作是一种威胁,并导致“拒绝访问”错误


谢谢大家!

我发现断开与Internet的连接就足以解决这个问题(尽管这可能与禁用所提出的防病毒解决方案有关)

另一个可能的解决方案是,您已经有了一个包含文件的dist文件夹-我有(忘记我已经运行了py2exe)。删除文件夹后,它再次工作

正如其他人所指出的,问题可能是防病毒程序阻止了对.exe文件的写入访问。如果您不能或不想禁用防病毒,则在
安装程序.py
文件开头的以下修补程序将重命名该文件,以避免在修改前使用
.exe
扩展名,并在修改后将其重新命名

import py2exe.py2exe\u util
从py2exe.py2exe_util导入添加资源
导入操作系统
def添加资源补丁(名称,*arg,**kwarg):
name_tmp=name+'.tmp'
重命名(名称,名称\u tmp)
添加资源(名称\u tmp,*arg,**kwarg)
重命名(名称\u tmp,名称)
py2exe.py2exe\u util.add\u resource=add\u resource\u补丁
从distutils.core导入设置
导入py2exe
设置(…)

出于好奇,如果可能,请尝试使用较短的路径名。当路径在Windows中过长时,可能会出现奇怪的错误。错误可能不是访问文件系统上的特定文件,而是访问其他一些功能,如注册表项或服务管理器设置(因为我注意到您使用的是
ServiceLauncher
win32service
,等等)。你是管理员吗?我是管理员。我尝试了一个较短的路径,但没有成功…如何检查它是否与注册表或服务管理器相关?如果可以在“事件查看器”中检查您的身份验证日志,可能会很幸运。感谢您回答此问题。我也有同样的问题,谷歌搜索了一下,找到了这个答案,禁用了杀毒软件,再次点击运行,一切都很好。总时间:1分钟。可能为我节省了几个小时!如果您无法禁用防病毒软件,那么运行构建过程(py2exe)两次可能会有所帮助。它对我有效,因为它第一次构建library.zip时失败了。第二次,它能够构建可执行文件。@syam感谢您提到这个=)完美的答案!由于我的AV没有弹出任何警告/错误,因此我在任何时候都不会想到这一点,因为这并不能提供问题的答案。若要评论或要求作者澄清,请在其帖子下方留下评论。-@FabioLamanna我遇到了与作者类似的问题,这是一个对我有效的解决方案。对于其他人来说,如果他们看到这篇文章,这是一个很好的资源。这对我来说很有用,而其他人都没有。它也很好,因为它永久性地修补了问题,并从我的流程流中删除了暂停和取消暂停步骤。