如果出现ntchat.exception.WeChatVersionNotMatchError
异常, 请确认是否安装github上指定的微信版本,如果确认已经安装,还是报错,可以在代码中添加以下代码,跳过微信版本检测
import ntchat
ntchat.set_wechat_exe_path(wechat_version='3.6.0.18')
如果还是无法正常使用,但确认已经安装过了3.6.0.18版本可以如下设置
import ntchat
# wechat_exe_path设置成自己3.6.0.18版本的微信的安装路径
ntchat.set_wechat_exe_path(
wechat_exe_path=r"C:\Program Files (x86)\Tencent\WeChat\WeChat.exe",
wechat_version="3.6.0.18")
也可以使用注册表修复这个问题,将下面内容保存成WeChatFix.reg, 并双击运行, 如果安装时有修改安装路径,需要修改下面的InstallPath为自己设定的安装路径
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\Tencent\WeChat]
"Version"=dword:63060012
"InstallPath"="C:\Program Files (x86)\Tencent\WeChat"
出现在这个错误的原因是因为你在github下载的源码目录中运行程序,因为wcprobe是根据python版本自动编译生成的,所以源码目录中没有这个文件.
你需要将要运行的例子文件移动到非源码目录下
,再去运行或打包
新建多个ntchat.WeChat实例,然后调用open方法:
import ntchat
# 多开3个微信
for i in range(3):
wechat = ntchat.WeChat()
wechat.open(smart=False)
更完善的多实例管理查看fastapi_example例子
# 注册监听所有消息回调
@wechat.msg_register(ntchat.MT_ALL)
def on_recv_text_msg(wechat_instance: ntchat.WeChat, message):
print("########################")
print(message)
完全例子查看examples/msg_register_all.py
os.environ['NTCHAT_LOG'] = "ERROR"
要在import ntchat
前执行
# -*- coding: utf-8 -*-
import os
import sys
import time
os.environ['NTCHAT_LOG'] = "ERROR"
import ntchat
先使用pip install pywin32
安装pywin32模块, 然后在代码中添加以下代码, 完整例子查看examples/cmd_close_event.py
import sys
import ntchat
import win32api
def on_exit(sig, func=None):
ntchat.exit_()
sys.exit()
# 当关闭cmd窗口时
win32api.SetConsoleCtrlHandler(on_exit, True)
使用pyinstaller打包NtChat项目,需要添加--collect-data=ntchat
选项
打包成单个exe程序
pyinstaller -F --collect-data=ntchat main.py
将所有的依赖文件打包到一个目录中
pyinstaller -y --collect-data=ntchat main.py
打包fastapi_example示例,需要添加--paths=. --collect-data=ntchat
pyinstaller -F --paths=. --collect-data=ntchat main.py