Python异常:“TypeError: main() 收到意外的关键词参数 'debug'”,但只有在Windows XP SP2上通过scheduledTask运行模块时出现

6 投票
1 回答
10887 浏览
提问于 2025-04-16 07:10

我在Windows XP SP2上运行Python 2.5。

当我通过Windows的计划任务运行一个Python脚本,这个脚本调用了一个我自己定义的模块叫做Zipper.py(其实就是一个处理zip文件的工具)时,出现了这个错误:

错误追踪(最近的调用在最前面):
文件 "C:\PythonScripts\ZipAndSendEOD-Reports.py",第78行,在main函数中
Zipper.main([report],f, debug=True) #[:-4] + "_" + str(x) + ".zip")
类型错误:main() 收到了一个意外的关键字参数 'debug'

奇怪的是,如果我直接在IDLE中打开这个文件并按'F5',它就能正常运行。

我知道我可能漏掉了一些重要的信息,如果需要的话请告诉我。

Zipper.py 的内容是这样的:

import zipfile

def main(archive_list=[],zfilename='default.zip', debug=False):
    if debug:    print 'file to zip', zfilename
    zout = zipfile.ZipFile(zfilename, "w", zipfile.ZIP_DEFLATED)
    for fname in archive_list:
        if debug:    print "writing: ", fname
        zout.write(fname)
    zout.close()

if __name__ == '__main__':
    main()

编辑:
我在调用的函数中添加了以下两行代码,现在它可以正常工作了。

f =  open(logFile, 'a')
f.write(Zipper.__file__)

你能给我解释一下这个吗?

1 个回答

3

正如保罗所说,你可能在运行一个不同版本的 Zipper.py 文件。你可以打印出 Zipper.__file__ 来查看它的具体路径。如果你需要调试,可以打印出 sys.path,这样可以看看为什么它会找到一个不同的文件。

撰写回答