系统:macOS
语言:Python
遇到的问题,通过pip安装,只能安装0.2.2的版本,现成编译好的0.2.3版本只有Linux的版本
需要自己编译0.2.3的版本
(注意:不要在M1芯片或者M1以上的Mac进行编译,会报各种错误,但是可以在其他非M1芯片的Mac上面编译后复制到M1芯片的Mac来使用)
1、在github找到signal-protocol项目源码,下载源码
2、由于Python的signal-protocol是通过rust扩展的,本机同时需要安装rust
安装rust:
按官网描述,macOS直接通过终端即可安装,如果是Windows,点击“Other Installation Methods”链接查看安装方法
在终端执行命令安装rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
3、打开下载的源码项目,新建一个Python虚拟环境,安装requirements
Python的版本需要3.7以上
进入新建的Python虚拟环境,在项目根目录下执行以下命令:
pip install -r requirements.txt
4、执行命令:
python setup.py develop
此时没有安装xcode,可能会报以下错误
根据提示,可执行命令单独安装 command line developer tools
1)执行命令:
xcode-select --install
2)指定xcode-select路径(如果没有报错,则此步骤可跳过):
sudo xcode-select --switch /Library/Developer/CommandLineTools
3)然后再继续执行之前的命令:
python setup.py develop
5、执行测试,验证项目无误
pytest -v tests/
执行所有测试通过,基本上没有问题
6、执行脚本编译wheel文件,根据报出的错误信息对脚本进行相应修改
在signal-protocol项目根目录下执行:
./build-wheels.sh
此处忽略过程,最终修改build-wheels.sh脚本与原脚本对比如下。修改完成后重新执行脚本?./build-wheels.sh
最后报 auditwheel命令不存在(如下图),但是已生成wheel文件,不影响使用,至此完成编译
7、在项目目录的dist目录下找到wheel文件(如下图)
8、切换到需要使用signal-protocol的项目,复制上述生成的wheel文件到当前项目,通过本地wheel文件安装signal-protocol模块
pip install signal_protocol-0.2.3-cp39-cp39-macosx_12_0_x86_64.whl