libArcus的编译(成功安装)
This library contains C++ code and Python3 bindings for creating a socket in a thread and using this socket to send and receive messages based on the Protocol Buffers library. It is designed to facilitate the communication between Cura and its backend and similar code.
翻译:
Arcus这个库(包含C++代码和Python3绑定),用于在线程中创建套接字,并使用这个套接字基于Protocol Buffers库发送和接收消息。它的设计目的是促进Cura与其后端以及类似代码之间的通信。
Building
To build the library, the following packages are needed:
编译
要编译这个库,需要以下软件包:
1、Protobuf 3 (3.0+)
注意版本要与libarcus的匹配,我下载的5.0版本,要求3.17版本以上,但注意3.20以上的话有几个函数参数要变(减掉一个参数就行)
2、Cmake
CMake To build the python bindings (default on, disable with -DBUILD_PYTHON=OFF) these additional libries are needed:
(1)python3-dev (3.4+)
注意cmakelist里面的python路径要和下载的版本一致
(2)python3-sip-dev (4.16+)
注意这个sip
包,名字不一定叫这个,这个只是linux用aptget的叫的名字,比如windows下python安装命令 pip install sip
安装的就叫sipbuild
,注意下载后要把名字改成sip
。
注意cmakelist里的find包里的名字要和这个sip
包名一致。
注意sipbuild和sipdistinfo包必须都有(下载的就是这两个,然后还得有一个名叫sip的包,可以直接把sipbuild复制过来改名)
(3)下载了sip却ModuleNotFoundError: No module named 'sip'
这个应该是包名不同,应该需要一个叫sip的包,可以这样做第一步:把sipbuild
复制一份,副本的名字改成sip
,同时把原sipbuild
包保留(因为cmake必须要有)。第二步:同时把包sip-版本号.dist-info
内的有个toplevel的txt文件内容改成现在的包名sip
。
可以敲以下命令检测sip模块
是否安装好:
验证 sip 是否可导入:
bash
cpp
python3.9 -c "import sip; print(sip.__file__)"
如果没有错误,并且显示了 sip 模块的路径
,那么说明 sip 已经可以被Python解释器正确导入。
如果你仍然遇到问题,可能需要检查你的Python安装是否完整,或者考虑重新安装 sip 和相关的绑定库(如PyQt或PySide)。确保你使用的是与你的Python版本兼容的库版本
3、流程
Building the library can be done with:
编译的是5.0以下version,注意main版本不能用这套
cmakelist的修改
if(NOT DEFINED Python_VERSION)的前面可以加以下内容防止编译器找不到python解释器 :一定要用你的python版本号和你的python路径(不知道可以用which python
查看)
示例:
css
set(Python_VERSION 3.9)
set(Python_VERSION_EXACT TRUE)
set(Python_EXECUTABLE /usr/bin/python3)
还有这个sip包的名字一定要改成sip: find_package(SIP REQUIRED 6.5.0)改成
bash
find_package(sip REQUIRED 6.5.0)
接下来编译安装即可:
$ mkdir build && cd build
$ cmake ..
$ make
$ make install
最难的就是cmake这一步,经常报错,一般都是缺包或者版本不匹配。
make install成功的结果应该是这样,且不会报错。
注意这个最后两行的pyArcus.so
和py
两个文件一定要有才说明sip
包的binding是成功安装的。