开源的 Python SDK 使用 ctypes 封装 CPP SDK 连接阿里云 RocketMQ,因此在使用开源 Python SDK 之前需要安装对应的 CPP SDK 的动态库。本文介绍在使用开源 Python SDK 接入阿里云 RocketMQ 来收发消息前,需要做的准备工作。

前提条件

在开始做准备工作前,请确保您的操作系统满足以下条件:

  • Linux:CentOS 6.8、CentOS 7.2、RHEL 6.x、RHEL 7.x
  • Darwin:macOS Mojave 10.14.x
  • Docker 官方镜像:
    • python:2.7-buster
    • python:3.5-buster
    • python:3.6-buster
    • python:3.7-buster

请确保您的 Python 版本满足以下条件:

  • Python 2.7.10 及以上 2.x.x 版本;
  • Python 3.5、3.6 或 3.7。
说明 暂不支持 Python 3.8。

准备工作包含以下部分,每个部分针对不同的操作系统都提供了相应的操作步骤:

  1. 安装 Python SDK
  2. 安装 CPP 动态库

安装 Python SDK

请使用 pip 管理工具来安装 Python SDK,直接执行以下脚本完成安装:

sudo pip install rocketmq-client-python

安装 CPP 动态库

注意 CPP 动态库默认安装到系统动态库目录下,请确保当前账号拥有 sudo 权限或请使用 root 账号来执行操作。

目前 CPP 的动态库已经提供了二进制 release,为方便下载,动态库可以从 OSS 上直接下载安装,针对不同的操作系统,可参考以下步骤。

  • CentOS 7.2 和 RHEL 7.x

    CentOS 默认支持 RPM 管理,RPM 包名为 t-rocketmq,可以执行以下 rpm 命令直接安装:

    rpm -ivh https://ons-client-sdk.oss-cn-hangzhou.aliyuncs.com/cpp-rpm/RHEL7/cgo/t-rocketmq-2.0.0-centos7.x86_64.rpm

    执行以下命令确保动态库安装成功(以下仅为示例,其它操作系统均可使用 ls 命令验证动态库是否安装成功):

    ls /usr/local/lib/librocketmq.so

    结果如下图所示。

    opensource-go-result
  • CentOS 6.8 和 RHEL 6.x

    CentOS 6.8 与 CentOS 7 相比,安装步骤相同,仅使用的 RPM 包不一样,参考以下命令:

    rpm -ivh https://ons-client-sdk.oss-cn-hangzhou.aliyuncs.com/cpp-rpm/RHEL6/cgo/t-rocketmq-2.0.0-centos6.x86_64.rpm

  • macOS Mojave 10.14

    macOS 下不提供包管理工具,可以执行以下命令手动安装动态库:

    wget -P /usr/local/lib https://ons-client-sdk.oss-cn-hangzhou.aliyuncs.com/cpp-rpm/darwin/librocketmq.dylib
    wget -P /usr/local/lib https://ons-client-sdk.oss-cn-hangzhou.aliyuncs.com/cpp-rpm/darwin/librocketmq_client_core.dylib
    wget -P /usr/local/include https://ons-client-sdk.oss-cn-hangzhou.aliyuncs.com/cpp-rpm/darwin/rocketmq.tar.gz
    tar -xzf /usr/local/include/rocketmq.tar.gz -C /usr/local/include/
    install_name_tool -id "@rpath/librocketmq.dylib" /usr/local/lib/librocketmq.dylib
    install_name_tool -add_rpath @loader_path/ /usr/local/lib/librocketmq.dylib
    install_name_tool -id "@rpath/librocketmq_client_core.dylib" /usr/local/lib/librocketmq_client_core.dylib
  • Docker 官方 Python 镜像

    Docker 官方镜像的操作系统是 Debain 系统,使用的默认包管理工具为 dpkg,我们提供了 DEB 包,包名为 rocketmq_2.0.0_amd64.deb,可以执行以下命令安装:

    wget https://ons-client-sdk.oss-cn-hangzhou.aliyuncs.com/cpp-rpm/debian/cgo/rocketmq_2.0.0_amd64.deb

    dpkg -i rocketmq_2.0.0_amd64.deb

后续步骤