我在Mac电脑上搭建时遇到了一些不同于网上大部分情况的问题,特此分享给可能也有遇到相同情况又找不到解决方法的人。
我的电脑系统:macOS Mojave 10.14.3。
paho-mqtt 的安装
首先,需要下载 paho-mqtt 模块(也有很多别的 mqtt 模块,在 pypi.org 网站上可以搜索到,但我感觉这个模块的相关资料全一些) ,直接运行 pip install paho-mqtt 即可安装,不过根据官网提示,我选择在 virtualenv 中运行。【1】我运行的指令如下:
virtualenv paho-mqtt
source paho-mqtt/bin/activate
pip install paho-mqtt
git clone https://github.com/eclipse/paho.mqtt.python
cd paho.mqtt.python
python setup.py install
注意:以后再运行时都需要先执行 source paho-mqtt/bin/activate ,正常情况下如下图所示。
mqtt 代理(broker) mosquitto 的安装
我查阅到的大多数都是安装 mosquitto,有比较多的安装介绍,于是我就选择安装这个。
终端执行 brew install mosquitto 就能便捷安装。
显示安装成功后,需要修改一下配置文件。我查看的大多是文章介绍包括我自己的终端提示都说了默认配置文件 mosquitto.conf 在 /usr/local/etc/mosquitto 中。但我的对应的 /usr/local/etc 下根本没有 mosquitto 这个文件夹。这个问题困扰了我很久。终端显示的提示如下:
To have launchd start mosquitto now and restart at login: brew services start mosquitto Or, if you don't want/need a background service you can just run: mosquitto -c /usr/local/etc/mosquitto/mosquitto.conf
最后终于在这个文章的启示下成功找到配置文件。【2】地址是usr/local/Cellar/mosquitto/1.5.8/etc/mosquitto。需要在配置文件 mosquitto.conf 中添加IP地址,如下图。默认 port 是1883。
启动 mosquitto 服务器
一般的操作是:
- 停止服务 brew services stop mosquitto
- 启动服务 brew services start mosquitto
但是我执行启动命令后报错了。在前面提到的文章的启示下,我找到可行的指令,如下(1.5.8是我所使用的 mosquitto 的最新版本,大家自行替换自己使用的版本):
cd /usr/local/Cellar/mosquitto/1.5./sbin
./mosquitto -c /usr/local/Cellar/mosquitto/1.5./etc/mosquitto/mosquitto.conf -d
成功后效果如下:
接着,你就可以运行你的 python 文件了。
参考资料
【1】https://pypi.org/project/paho-mqtt/#installation
【2】https://www.jianshu.com/p/a48598e9b76e (《Mac安装MQTT服务器》)