评论
我遇到了同样的问题。 |
这不是cncjs的问题,是串口的问题。 |
所以我一直在阅读串行端口,因为我在我的 linux 机器上遇到了同样的问题。您需要安装 python2 并在运行 添加这些库等应该允许@serialport/bindings 的安装后在其安装后步骤中运行编译。 @chetonWindows 和 Linux 都不再默认安装 python2,所以我猜会有越来越多的报道。我们是否应该在 README 中添加一条注释,确保您的路径上有 python2 和 ac 编译器工具链,以便安装 serialport?目前的注释只是说不要使用 |
随意使用您亲自测试过的构建说明编辑或创建 wiki 页面。此类测试的一个技巧是确保您实际上是从头开始。 |
@MitchBradley我可能会那样做。 从头开始对我来说其实很容易。我是 octoprint-docker 的维护者,所以我有几十个系统和一个我创建的名为bootcc的程序,它允许我从任何使用 cloud-init 的发行版快速构建一个新机器。(我主要使用 Ubuntu x64 和 32 进行测试)。 现在我只是试图将它提炼成最短的可能指令,并且我还通过serialport/node-serialport#2109(评论)向 node-serialport 提供关于编译文档的潜在更新的反馈。 Windows 在 Marketplace 中有 python3,并且有一个简单的命令来安装它(必须查找它),而 Ubunut 和许多其他系统现在默认安装了 python3,但不能调用为 从理论上讲,您需要做的就是运行一个 我还没有为 python 3 和 node-gyp 测试更简单的指令集,但是我在一台新的 Ubuntu 20.04 arm64 和 armhf 机器上用 python 2 进行了测试,我在那里运行: # update and install c toolchain and python2
$ sudo apt update -y
$ sudo apt install -y build-essential gcc g++ python2
# verify python 2 and 3 are installed
$ ls -al /usr/bin/python*
lrwxrwxrwx 1 root root 7 Apr 15 05:45 /usr/bin/python -> python2
lrwxrwxrwx 1 root root 9 Mar 13 2020 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 3694632 Apr 7 07:05 /usr/bin/python2.7
lrwxrwxrwx 1 root root 9 Mar 13 2020 /usr/bin/python3 -> python3.8
-rwxr-xr-x 1 root root 5453504 Jul 16 09:00 /usr/bin/python3.8
# verify system doesn't have an alternative for `python` already configured, which is used by node-gyp to compile serialport
$ sudo update-alternatives --list python
update-alternatives: error: no alternatives for python
# set system alternatives for python command
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2
…现在 serialport 将编译并且 cncjs 将安装而不会出现错误。 我已经为 arm64 和 armhf 架构的全新 Ubuntu 安装重复了该安装,并观察到在这些步骤之前第一次失败后的成功。 不幸的是,我有大量的文档要为 octoprint-docker 编写,它们将被优先考虑,所以我现在不能花时间为此做足够的测试以有信心将该文档添加到 wiki . 希望这会帮助其他有时间能力的人完成我开始的工作,(或者当我有时间时它会留给后代)。 ? |
因此我们看到了核心问题:“具有必要的高级知识和适当的计算资源的人”和“有时间能力的人”的交集是空集。第一组中的任何人几乎都肯定会过度投入。
在 Windows 上设置 Python 很容易,但管理 Python 版本则不然。有一些工具可以做到这一点,例如 pyenv-win,但它们引入了另一层复杂性,对于已经被一层又一层不熟悉的东西压得喘不过气来的新手来说,这可能会让人大吃一惊。 实际上,当我说“从头开始”时,我轻描淡写了这个问题。Scratch 是 Raspberry Pi 的合理起点,您只需将操作系统映像复制到 SD 卡上,然后从那里继续,前提是您的 CNC Pi 可能尚未投入使用。在 Windows 上,这台机器可能已经投入使用,安装了数十个其他应用程序,因此将其降级为新生状态是不切实际的。因此,除了处理您必须添加的内容之外,您还必须处理其他可能已经存在的冲突内容。此外,您还有安装 C 编译器以及一些辅助工具的蠕虫病毒 – 或者处理已经安装的可能是错误版本的工具。 Docker 是某些人的答案,但它是那些“复杂性的其他层次”之一,而且是一个特别令人印象深刻的层次。如果您打算在 Windows 主机中运行 Linux,那么您就已经将“所有 Linux”引入了复杂性集。更不用说从容器内部访问主机文件系统的棘手方面了。“小问题”的数量很快就会变得非常多。许多人会在最终解决方案出现之前很久就放弃。 我最喜欢的长期解决方案是完全避免 C 编译。CNCjs 的 Javascript 部分完全独立于机器。我已经在一台机器上成功构建了 CNCjs,将所有内容复制到 Raspberry Pi Zero,然后替换了一个二进制文件以支持串口。这表明应该可以有一个包含多个二进制文件的 serialport-node 模块来支持所有常用平台——Win、Mac、Linux-x64、arm7、arm7hf。这样,就不需要运行 node-gyp 步骤了。 问题的症结在于 node-serialport 处理二进制文件的方式。将 node-serialport 更改为使用 prebuildify 相对容易(对于有时间的合适开发人员 – 但请参阅第一段)。参见串行端口/节点串行端口#975 |
描述
详细描述问题或功能请求。截取屏幕截图或录制视频会有所帮助。
版本
你如何安装CNCjs?
数控系统
硬件
操作系统