- python初学者需注意的问题
- qqbot 的配置文件放在哪里?
- qqbot 的插件应保存在哪个目录?
- 如何修改配置文件和插件的保存目录?
- 为什么修改了配置没有生效?
- onQQMessage 函数中如何获取消息发送者的 QQ 号码等信息?
- onQQMessage 函数中如何判断消息是好友消息还是群消息?
- 为什么有时候会重复发消息,有无解决办法?
- 如何判断是否是自己发的群消息?
- onInterval 函数是否可以自己设置调用的间隔时间?
- 如何稳定的长期保持在线?
- 如何采用 virtualenv 将本项目安装至独立的运行环境?
- 建议先系统的学习一下 python 的语法,参考资料: python3 教程
- 建议学习和使用 python3 ,建议使用 PyCharm IDE
- python 脚本的开头要加上 “# -*- coding: utf-8 -*-” ,并保存为 utf8 编码格式
- 不要把你的脚本文件保存为 qqbot.py 或 sys.py ,或系统中已有的库或关键字的名字;也不要在脚本中将变量、函数等命名为 qqbot/sys/time 等名字。
请确认是在配置文件中的 somebody 项下修改的配置,并且是以 qqbot -u somebody 的方式启动。
当然,也可以自己新增一个 xxx 的项,并以 qqbot -u xxx 的方式启动。
如果你已理解配置文件中的配置优先级和命令行参数,可以修改“默认配置”,或者在命令行参数中修改配置。
使用该函数中第二、三个参数 contact 和 member 的 qq 等属性,如 contact.qq / contact.name 等。详见: 联系人对象的属性。
注意: member 有时侯可能为 None 。
contact.ctype 为 'buddy'/'group'/'discuss' 时,分别代表本消息时 好友消息/群消息/讨论组消息 。
不能。建议使用 qqbotsched 装饰器,功能更加强大。
由于 smartqq 协议的限制,每次登录成功后的 cookie 会每在 1 ~ 2 天后失效,将被腾讯服务器强制下线,此时 必须 手工扫码重新登录,因此无法稳定的长期保持在线。
可以打开邮箱模式和自动重启模式,并配合 qqbot.plugins.schedrestart 插件使用,每天在固定的时间扫码登录一次,基本上可以稳定的保持在线状态。建议直接使用 QQ 邮箱,这样发送二维码邮件后手机 QQ 可以马上收到通知,直接用手机 QQ 打开邮件并长按二维码图片就可以扫码了。
本项目依赖于 reqests 、flask 、 certifi 和 apscheduler 库,用 pip 安装本项目时会自动安装以上四个库以及它们所依赖的库。一般来说安装本项目不会与系统其他项目冲突,因此可直接安装至系统的全局 site-packages 目录。
在某些系统中可能会出现 https 请求错误,这时需要安装 certifi 库的指定版本(2015.4.28 版),可能会将系统中已有的 certifi 库升级或降级并导致会使系统中的其他项目无法使用,这时可以使用 virtualenv 将本项目安装至独立的运行环境中。
另外,Windows 下的用户有时需要使用 pyinstaller 打包自己利用 qqbot 开发的程序,此时也建议使用 virtualenv 将 qqbot 以及 pyinstaller 安装至独立的运行环境中,然后利用此环境中的 pyinstaller 进行打包。
virtualenv 基本原理和使用可参考 廖雪峰的教程 。
以下脚本(Linux下)将在 ~/PyVenv/qqbot-venv 目录下创建一个独立的运行环境,并将 qqbot 及其依赖的库安装至 ~/PyVenv/qqbot-env/lib/site-packages 目录下。系统中的原有的库不会被改动,其他项目不受影响。
sudo pip install virtualenv
mkdir ~/PyVenv
cd ~/PyVenv
virtualenv --no-site-packages qqbot-venv
source ~/PyVenv/qqbot-env/bin/activate
pip install requests==2.7.0
pip install certifi==2015.4.28
pip install flask==0.12
pip install apscheduler==3.3.1
pip install qqbot
注意:使用本方式安装本项目后,每次使用 qqbot 和 qq 命令之前,需要先运行下面这条命令激活 qqbot-venv 下的运行环境:
source ~/PyVenv/qqbot-env/bin/activate
Windows 下, 上述脚本改为:
pip install virtualenv
c:
mkdir %UserProfile%\PyVenv
cd %UserProfile%\PyVenv
virtualenv --no-site-packages qqbot-env
%UserProfile%\PyVenv\qqbot-env\Scripts\activate
pip install requests==2.7.0
pip install certifi==2015.4.28
pip install flask==0.12
pip install apscheduler==3.3.1
pip install qqbot
其中 %UserProfile% 是用户主目录,Win7中为 C:\Users\xxx 目录。
Windows 下如果需要使用 pyinstaller 打包,还需要安装 pyinstaller 和 pypiwin32 :
pip install pyinstaller==3.2.1
pip install pypiwin32==219
然后在 %UserProfile%\PyVenv\qqbot-env 下新建一个目录 myapp :
cd %UserProfile%\PyVenv\qqbot-env
mkdir myapp
cd myapp
在该目录下新建一个 main.py ,内容为:
from qqbot import Main; Main()
再新建一个 hook-ctypes.macholib.py ,内容为:
from PyInstaller.utils.hooks import copy_metadata
datas = copy_metadata('apscheduler')
最后,输入以下命令将 main.py 打包为 dist\main.exe
..\Scripts\pyinstaller -F main.py --additional-hooks-dir=.