停止将 Python 代码写入 JMP 日志有没有办法阻止 JMP 将提交给 Python 的代码副本打印到日志中?
似乎每次我跑步
Python Submit( code )
我在日志中获得了代码的副本。
如果只运行一次,这不是什么大问题,但如果多次运行一小段 Python,它确实会使日志变得混乱,使真正的消息更难找到。它是否也会因写入屏幕而对性能产生影响?
我正在使用 JMP 18.0.1。
简单示例:
Names Default To Here( 1 );
for(i = 1, i <= 10, i++,
Python Send( i );
Python Submit( "\[
b = i / 2
a = b ** 2]\" );
show( geta = Python Get( a ) );
);
给出以下内容:
/*:
//:*/
b = i / 2
a = b ** 2
/*:
geta = Python Get(a) = 0.25;
//:*/
b = i / 2
a = b ** 2
/*:
geta = Python Get(a) = 1;
//:*/
b = i / 2
a = b ** 2
/*:
geta = Python Get(a) = 2.25;
//:*/
b = i / 2
a = b ** 2
/*:
geta = Python Get(a) = 4;
//:*/
// ....... and so on
自动化和脚本回复:停止将 Python 代码写入 JMP 日志您可以尝试日志捕获()函数。
a = "Goodbye";
b = log capture(
print("Hello World");
print(a);<BR />// Python commands here...
);
write(b);回复:停止将 Python 代码写入 JMP 日志谢谢!我忘记了日志捕获()。
回复:停止将 Python 代码写入 JMP 日志脚本索引显示可选参数 echo(True | False)。
Python 提交(代码,echo(False));
不幸的是,这个可选参数在 18.0(和 18.0.1)中被忽略,因此此时日志捕获是可行的方法。
这个问题已于本月初修复,但未将其纳入即将发布的 18.1 维护版本的代码库。我们已经过了 18.1 的代码冻结期限。该问题已在我们的主线开发轨道中修复。(JMP 19)
类似地,此 jmp.run_jsl() 的伴随函数也添加了可选的 echo 参数。(JMP 19)
jmp.run_jsl('''代码''', echo=True|False )
回复:停止将 Python 代码写入 JMP 日志
@Paul_Nelson写道:
脚本索引显示可选参数 echo(True | False)。
Python 提交(代码,echo(False));
无论是在 18.0.1 还是 17.2 中,echo 参数都没有出现在我的脚本索引中:

仅限专业版吗?
回复:停止将 Python 代码写入 JMP 日志
@Paul_Nelson写道:
不幸的是,这个可选参数在 18.0(和 18.0.1)中被忽略,因此此时日志捕获是可行的方法。
这个问题已于本月初修复,但未将其纳入即将发布的 18.1 维护版本的代码库。我们已经过了 18.1 的代码冻结期限。该问题已在我们的主线开发轨道中修复。(JMP 19)
你好@Paul_Nelson ,
对于 JMP 19,echo 参数是否会提供打印到日志的任何粒度?例如,禁用打印 Python 代码可能会很有用,但仍允许将来自 Python 的消息(例如来自 print() 命令的消息,或来自库的错误)打印到生成的日志中。目前,Log Capture() 方法将始终捕获所有内容。
谢谢!
回复:停止将 Python 代码写入 JMP 日志我想在回复之前先测试一下。
是的,使用当前代码和我的测试用例,即使代码没有回显到日志,Python print(value) 的输出仍然会通过,就像堆栈 Traceback: 一样,当 Python 代码中发生错误时。如果在 Python 中抛出错误异常,JSL 将返回 -1。std::disclaimer< 这是预发布开发,虽然我相信这接近最终形式,但不保证。>。可控日志级别的想法是一个有趣的功能想法。
回复:停止将 Python 代码写入 JMP 日志它可能已记录在在线帮助文档中,也可能是无意的疏忽。它也可能在 Python Execute() 中被提及。如果您遇到可选参数 echo(True | False) 的文档,您可能还会看到另一个可选参数 expand ( True | False )。忽略它,它已在 19 中被删除。