关闭 2个任务 CorKrb 打开了这个问题 2018 年 4 月 27 日 · 1条评论 关闭 2个任务 halcompile: “TypeError: coercing to Unicode: .. ” 隐藏合理的错误信息#431 CorKrb 打开了这个问题 2018 年 4 月 27 日 · 1条评论 注释 CorKrb 评论了 2018 年 4 月 27 日 以下是我重现该问题所遵循的步骤: 我编辑了一个组件“mytest.comp”(里面有不同的组件名称): component mysiggen; 固定在浮动 to_sawtooth 中; 固定在浮动 to_triangle 中; 选项用户空间是; 许可证“GPL”; ;; void user_mainloop(void) { rtapi_print_msg(RTAPI_MSG_ERR, "mysiggen: vor while(1)\n"); while(1) { usleep(100000); FOR_ALL_INSTS() { rtapi_print_msg(RTAPI_MSG_ERR, "hal_user_mainloop: saege=%lf, drei=%lf\n", to_sawtooth , to_triangle ); } } } 我试着编译: halcompile –compile mytest.comp 这是我期望发生的事情: 输出:组件名称 (mysiggen) 与文件名 (mytest) 不匹配 这是发生了什么: 输出: 回溯(最近调用最后): 文件“/home/cncuser/CNC/NC/linuxCNC/bin/halcompile”,第 1416 行,在 main() 文件“/home/cncuser/CNC/NC/linuxCNC/bin/ halcompile”, line 1411, in main os.unlink(outfile) TypeError: coercing to Unicode: need string or buffer, NoneType 找到 我认为这里不应该发生两件事: 取消链接不存在的文件会隐藏相应的错误消息。 未找到错误系统消息并导致打印错误。 我通过在 halcompile 的“try:”和“os.unlink(outfile)”之间添加“if outfile != None:”来解决这个问题:第 1410 行 有关我的硬件和软件的信息: 我正在使用此 Linux 发行版和版本(通常由 显示lsb_release -a): 没有可用的 LSB 模块。 发行商 ID:Debian 描述:Debian GNU/Linux 9.4 (stretch) 版本:9.4 代号:stretch 我正在使用这个内核版本(显示为uname -a): Linux debian94 4.9.0-6-amd64使用 Tcl_SetResult 和 Tcl_GetStringResult #1 SMP Debian 4.9.82-1+deb9u3 (2018-03-02) x86_64 GNU/Linux 我在跑步 … 来自 linuxcnc.org 的二进制版本(包括 buildbot.linuxcnc.org) [X] 我自己构建的二进制文件 来自 linuxcnc.org 之外的其他来源的二进制版本 我正在使用这个 LinuxCNC 版本(显示在包管理器中,或者对于 git 版本,scripts/get-version-from-git):v2.8.0-pre1-3695-g159ce9c3c 我正在使用此用户界面 (GUI)(例如 AXIS、Touchy、gmoccapy 等):AXIS 我正在使用此接口硬件供应商和芯片组(例如,并行端口、以太网端口、FPGA 卡): 仅在 VM 中模拟 安迪普 指派 了杰普勒 2018 年 4 月 27 日 成员 杰普勒 评论了 2018 年 4 月 27 日 通过电子邮件 这将教我尝试移植到 python 3,这很可能是引入此错误的原因。感谢 Andy 的作业,我最快下周会看。 …… jepler在完成 时 关闭了它 d459474 2018年5月1日 喜欢 (0) 无法根据连接到 D2 的内容上传固件(MPCNCV1P2 引出线) #222 激光模式未按预期工作($32=1) #223 2.8inch_ESP32-2432S028R无法获取任何菜单 #56 2.8inch_ESP32-2432S028R显示屏支持 #55 编译错误 #54 文本部分超出了板中的可用空间 #53 2.8inch_ESP32-2432S028R无法获取任何菜单 #562.8inch_ESP32-2432S028R显示屏支持 #55编译错误 #54文本部分超出了板中的可用空间 #53编译失败:SdFat.h:没有那个文件或目录 #50esp32c3支持吗? #49慢跑算法 #48启用 WiFi 后,STA & AP 模式会暂停发送 G 代码。 #46
以下是我重现该问题所遵循的步骤:
component mysiggen;
固定在浮动 to_sawtooth 中;
固定在浮动 to_triangle 中;
选项用户空间是;
许可证“GPL”;
;;
void user_mainloop(void) {
}
halcompile –compile mytest.comp
这是我期望发生的事情:
输出:组件名称 (mysiggen) 与文件名 (mytest) 不匹配
这是发生了什么:
输出:
回溯(最近调用最后):
文件“/home/cncuser/CNC/NC/linuxCNC/bin/halcompile”,第 1416 行,在
main()
文件“/home/cncuser/CNC/NC/linuxCNC/bin/ halcompile”, line 1411, in main
os.unlink(outfile)
TypeError: coercing to Unicode: need string or buffer, NoneType 找到
我认为这里不应该发生两件事:
我通过在 halcompile 的“try:”和“os.unlink(outfile)”之间添加“if outfile != None:”来解决这个问题:第 1410 行
有关我的硬件和软件的信息:
我正在使用此 Linux 发行版和版本(通常由 显示
lsb_release -a
):没有可用的 LSB 模块。
发行商 ID:Debian
描述:Debian GNU/Linux 9.4 (stretch)
版本:9.4
代号:stretch
我正在使用这个内核版本(显示为
uname -a
):Linux debian94 4.9.0-6-amd64使用 Tcl_SetResult 和 Tcl_GetStringResult #1 SMP Debian 4.9.82-1+deb9u3 (2018-03-02) x86_64 GNU/Linux
我在跑步 …
我正在使用这个 LinuxCNC 版本(显示在包管理器中,或者对于 git 版本,
scripts/get-version-from-git
):v2.8.0-pre1-3695-g159ce9c3c我正在使用此用户界面 (GUI)(例如 AXIS、Touchy、gmoccapy 等):AXIS
我正在使用此接口硬件供应商和芯片组(例如,并行端口、以太网端口、FPGA 卡):
仅在 VM 中模拟