本篇文章写作时,按照阿里云官方手册上说的码云链接下载的代码在python3.7下编译不通过,会出现一些问题。在阿里专家的帮助下,通过修改一个自动编译文件,将问题解决,在此与大家分享一下。
所用硬件:haas100开发板
拿到haas100开发板后,在上手测试helloworld_demo时,发现即使例程也编译不通过。
参考的步骤是阿里云的官方手册2020年9月23日版本。
下载的代码是下图的链接,用的是码云那个。
上篇文章上提到过,alios-things系统编译是通过基于python2.7的aos-cube工具进行的。aos-cube安装成功之后,可以通过windows的命令行工具,使用若干指令来完成编译的操作,比如haas开发板,就是通过下图所示的命令来进行编译的。
我用的是python3.7版本,跟官方推荐的版本不一致。导致编译的时候,出现下图所示的错误。
错误提示有4个: 其中3个提示 “missing parentheses in call to 'print'”。 第四个提示“The second is “module ‘string’ has no attribute 'find'"。
在阿里专家的指导下,确认问题的原因是本人的Python版本(3.7)与推荐的版本(2.x)不一致,从而导致个别语句因语法不一致编译不通过。python3.7对于个别函数的语法有调整,语法调整后会“不认”个别“旧”语句。
有3个位置将print后面的语句加上括号"()",第4个语句将string修改为str。
将压缩文件解压,将haas1000_genbin.py文件复制到AliOS-Things\platform\mcu\haas1000\release\auto_build_tool目录下,替换原来文件即可。为防止以后还用原文件,可以将其改名存放在他处。
讨论交流