显然,这个错误的原因仍然和我写这个问题时一样神秘。由于很容易避免(不要在input()中重命名“feature”),所以我结束了这个问题。
我将其重命名为原来的名称,其中def input()中的“ft”代替了“feature”
它是由AttributeFileWriter编写的WMS调用的输出创建的。
作为一个好奇,并重新命名“ft”回“功能”在我的代码,现在它不会出错!?!
此外,错误引用(第16行)是“def close”,其中只有一个“pass”语句,提示我在一些隐藏的“代码隐藏”中假设错误。
对不起,这
一个
性格并不是必需的。我们有一些怪癖与最新的知识库更新。
您可以尝试在close方法中添加一个特性吗?最后几行是
def close(self): feature = fmeobjects.FMEFeature()一次通过
从我看到的另一个案例中,我有一种感觉,这可能会有所帮助。
很难说,因为我无法重现这个问题。有没有可能发布一个最小的示例工作区来重现问题?
本周早些时候论坛更新了一个更新,外管局仍在努力解决一些问题。亚搏在线
你能把代码作为附加的.txt文件发布吗?希望这能奏效。
但是,为什么FME随后会发出错误消息,并命名有问题的“feature”变量呢?
不,大多数“传递”行实际上是需要的,因为Python在任何上下文中至少需要一行代码。
我可以看到web UI已经删除了所有相关的缩进。为什么在这个web UI中添加未重新格式化的代码的可能性被删除了?
确实,但我假设文件是先在某处创建的:-)
但是,是的,也许这并不适用于你的情况…
python调用者不创建临时文件,而是删除它。
另一件事,可能有点无关:如果您只是在转换期间需要一个临时文件,我强烈建议使用TempPathnameCreator,而不是用Python实现某些东西。
变压器的正面是:
最棒的是:FME will自动删除使用此转换器创建的临时目录/文件,因此不必这样做。即使FME崩溃,它也能工作。
啊,确实如此
您确定已经发布了完整的代码吗?我无法重现我这边的问题。
实际上,即使在input()方法中重命名了“feature”参数,FME 2018.1和2017.1中的代码对我都适用。
另外,您可以安全地删除inp亚搏在线ut()方法中的所有“pass”行。这不是错误的来源,但也不做任何事。
feature不是模板代码中的变量,它不应该被重命名