我在运行python脚本(由./waf --run调用)时收到此错误:
TypeError:abspath()恰好接受1个参数(给定2个)
问题是它确实是用obj.path.abspath(env)调用的。
这不是python的问题,因为该代码以前可以完美运行,并且它是一个巨大项目(ns3)的一部分,所以我怀疑它是否已损坏。
但是,我的设置必须有所更改,因为此代码以前可以运行,而现在却没有。
您能帮我弄清楚为什么会出现此错误吗?
这是python代码:http://pastebin.com/EbJ50BBt。错误发生在第61行。
最佳答案
方法Node.abspath()
的文档指出它没有附加的env
参数,并且通过检查git历史记录确认了它从未这样做。我建议更换
if not (obj.path.abspath().startswith(launch_dir)
or obj.path.abspath(env).startswith(launch_dir)):
continue
与
if not obj.path.abspath().startswith(launch_dir):
continue
如果此代码之前有效,则可能是由于
or
表达式的第一个运算符始终为True
的事实,因此从未执行过第二个运算符。无论如何,这似乎是代码中的错误。