session.run在包含注释的脚本上会失败,对吗?它难道不会把注释去掉吗?

后端开发 2026-07-09

我有一个 .dos 脚本,在DolphinDB GUI中可以正常运行,但在通过Python API的 session.run 执行时会失败。手动删除脚本中的所有注释后,错误就消失。

脚本(简化):

// initialize parameters
start_date = 2024.01.01
end_date   = 2024.12.31
/* load data */
t = loadTable("dfs://mydb", "mytable")
select * from t where date between start_date:end_date

Python调用:

with open("my_script.dos", "r") as f:
    code = f.read()

s.run(code)

指向注释行的语法错误

使用 session.runFile("my_script.dos") 可以不修改地工作。

session.run 在将代码发送到服务器之前,是否不会移除 ///* */ 注释?如果不是,runFile 是否是执行脚本文件的推荐方法,还是应该在Python端对注释进行预处理?

解决方案

是的。对于文件级的 .dos 脚本,Session.runFile() 是正确的方法。

DolphinDB的 Python API文档将 Session.run(script, ...) 描述为执行一个脚本字符串,而 runFile(filePath) “在服务器上运行本地DolphinDB脚本文件”,重要的一点是路径对Python客户端是本地的。

除非必要,否则我不建议对注释进行预处理。要执行完整的DolphinDB脚本文件,请使用 runFile();把 run() 留给内联片段或表达式。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章