我在Mac电脑上搭建时遇到了一些不同于网上大部分情况的问题,特此分享给可能也有遇到相同情况又找不到解决方法的人。

我的电脑系统:macOS Mojave 10.14.3。

paho-mqtt 的安装

首先,需要下载 paho-mqtt 模块(也有很多别的 mqtt 模块,在 pypi.org 网站上可以搜索到,但我感觉这个模块的相关资料全一些) ,直接运行 pip install paho-mqtt 即可安装,不过根据官网提示,我选择在 virtualenv 中运行。【1】我运行的指令如下:

  1. virtualenv paho-mqtt
  2. source paho-mqtt/bin/activate
  3. pip install paho-mqtt
  4. git clone https://github.com/eclipse/paho.mqtt.python
  5. cd paho.mqtt.python
  6. 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 这个文件夹。这个问题困扰了我很久。终端显示的提示如下:

  1. To have launchd start mosquitto now and restart at login:
  2.  
  3.   brew services start mosquitto
  4.  
  5. Or, if you don't want/need a background service you can just run:
  6.  
  7.   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 的最新版本,大家自行替换自己使用的版本):

  1. cd /usr/local/Cellar/mosquitto/1.5./sbin
  2. ./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服务器》)

Python:Mac 下 MQTT 服务器 Mosquitto 的配置的更多相关文章

  1. Mac下Android studio 之NDK配置教程(一)

    Mac下Android studio 之NDK配置教程(一) 1.概述 近期项目全线转移到Mac下使用使用Android studio开发. 遇到关键代码封装到 ***native***层,此时在wi ...

  2. MAC 下配置MQTT 服务器Mosquitto

    一.简单介绍   1.MQTT是IBM开发的一个即时通讯协议.MQTT是面向M2M和物联网的连接协议,采用轻量级发布和订阅消息传输机制.    2.Mosquitto是一款实现了 MQTT v3.1 ...

  3. Mac下Apache服务器和webDav服务器快速配置

    当自己在家敲代码需要发请求时,就可以配置本地Apache,Mac电脑自带的服务器.这个比windows上的本地服务器还要好用,下面写下最快速配置方案. 0.在开始之前需要给自己的电脑设置下开机密码,想 ...

  4. CentOS6.4下Git服务器Gitosis安装配置

    1.安装GIt: #yum install git 2.增加一个git用户 #useradd git #passwd git 3.创建git仓库存储目录,设置权限 #mkdir /home/git/r ...

  5. [转]Mac下cocos2dx-3.2+Xcode环境配置和项目创建

    原文:http://blog.csdn.net/u012200908/article/details/38070885 这是有关环境配置的第二篇教程,第一篇讲的是win8下的环境配置.这里我们使用C+ ...

  6. Mac下Virtual Box Host-Only网络配置

    Mac下的虚拟机其实有很多,Parallels.VMware Fusion.Virtual Box都不错,Parallels是目前试过感觉最好的,Fusion装64位系统驱动支持似乎不完善,而且混合模 ...

  7. MAC下用homebrew安装及配置apache、php和mysql

    我们用到php运行环境的时候总喜欢用集成包,其实在mac下,用homebrew也可以很快的安装这些东西,配置也很简单. homebrew homebrew是mac下的一个包安装管理工具,使用非常简单方 ...

  8. mac下Android开发环境的配置

    近似一天的时间,终于把Android环境配置好了. 总结:主要问题在于android的网站是国外,下载东西的时候需要vpn才可以.所以会出现各种各样的问题. 环境:Android Studio + S ...

  9. Ubuntu 16.04下Samba服务器搭建和配置(配截图)

    一.相关介绍 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和 ...

随机推荐

  1. Django 列的自定义显示

    ModelAdmin 作用:对后台数据表的显示做自定义的设置(如果对django默认的显示模式感到满意则不需要定义modeladmin).我对默认的显示模式永远不满意! 定义modeladmin: f ...

  2. javafx--tableView笔记-----tableView里已经填充了实体类数据但是很狗血地显示不出来

    private String cClass private String cUp private String cDown 刚开始实体类的字段 cClassCol.setCellValueFactor ...

  3. ASP.NETMVC 分页

    <div class="text-center">    <span style="display:inline-block;  position:re ...

  4. Python函数的装饰器修复技术(@wraps)

    @wraps 函数的装饰器修复技术,可使被装饰的函数在增加了新功能的前提下,不改变原函数名称,还继续使用原函数的注释内容: 方便了上下文环境中不去更改原来使用的函数地方的函数名: 使用方法: from ...

  5. CentOS7.x安装MySQL5.7.25

    mysql 5.7下载地址 社区版下载地址:https://dev.mysql.com/downloads/mysql/ 可能会有变动 找到5.7版本, 注:源码安装需要用到下面的包,可以先忽略,我安 ...

  6. 在Winform开发框架中下拉列表绑定字典以及使用缓存提高界面显示速度

    在我们开发Winform界面的时候,往往需要绑定数据字典操作,也就是绑定一些下拉列表或者一些列表显示等,以便我们方便选择数据操作,常见的字典绑定操作就是对下拉列表的处理,本篇随笔是基于DevExpre ...

  7. 增强for

    什么是增强for? 增强for(也称之为for each)是JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合的.他的内部原理其实是一个Iterator迭代器,所以在遍历过程中不能对集合 ...

  8. H5键盘事件处理

    if (/Android/gi.test(navigator.userAgent)) { const innerHeight = window.innerHeight; window.addEvent ...

  9. sonar 匿名内部类写法不推荐

    今天sonar扫出一个问题, 是这样说的. 我觉得有点牵强吧. 有点个人情绪在的样子. 那Java设计这种方式干嘛?

  10. 使用FastJson进行对象和JSON转换属性命名规则为下划线和驼峰的问题

    public class AliPayParam { @JSONField(name="out_trade_no") private String outTradeNo; @JSO ...