我使用NodeJS通过cozmoapi的pythonshell包来启动一个Python脚本。在
我的问题是当我执行nodecozmo.py从命令中编写脚本,就像它完美地工作一样。当我从node应用程序执行完全相同的脚本时,它在执行py时会给我一个语法错误。在
不知道这怎么可能是语法错误,也许pythonshell包使用了一个旧的python版本?不懂语法处理可能不懂?我试着查阅资料来源,却不明白为什么会引起这个问题。在
错误
Error: File "nodecozmo.py", line 16
def cozmo_program(robot: cozmo.robot.Robot):
^
SyntaxError: invalid syntax
Python脚本
^{pr2}$节点应用程序
var PythonShell = require('python-shell');
PythonShell.run('./nodecozmo.py', function (err) {
if (err) throw err;
console.log('finished executing');
});
python脚本使用的是python3.5中引入的一种新语法type hinting。
def
语句是说}。在
cozmo_program
函数接受一个参数robot
,它的类型应该是{从你的剧本开始,nodecozmo.py,从命令行运行时没有错误,则必须使用Python>;=3.5版本运行它。在
由于NodeJS返回SyntaxError,NodeJS必须运行Python版本<;3.5脚本。请注意错误消息如何直接指向冒号:
^{pr2}$由于类型暗示是一种很好的方法,但不是必须的,因此只需删除类型提示,就可以使脚本向后兼容:
改变
到
相关问题 更多 >
编程相关推荐