python3.7之itchat 或bot 登录微信时报错:loginCallback=loginCallback, exitCallback=exitCallback)

1.itchat方式登录微信
itchat.auto_login() 
#不想每次都扫描,登录时预配置
#itchat.auto_login(hotReload=True)
#itchat.run()
2.或者 第二种bot方法登录微信
def login_wechat():
	global bot
	bot = Bot()

以上两种方式登录微信都会出现以下告警信息
错误告警如下:

Traceback (most recent call last):
File “wechat1.py”, line 72, in
sendNews()
File “wechat1.py”, line 37, in sendNews
itchat.auto_login()
File “C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-p
ackages\itchat\components\register.py”, line 35, in auto_login
loginCallback=loginCallback, exitCallback=exitCallback)
File “C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-p
ackages\itchat\components\login.py”, line 73, in login
os.remove(picDir or config.DEFAULT_QR)
PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: 'QR.png

以上告警信息包含2个错误告警:
问题1:
File “C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-p
ackages\itchat\components\register.py”, line 35, in auto_login
loginCallback=loginCallback, exitCallback=exitCallback)
解决方法:
找到utils.py 文件,打开这个文件C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\site-packages\itchat\utils.py
导入import webbrowser模块,之后修改这段代码

def print_qr(fileDir):
    if config.OS == 'Darwin':
        subprocess.call(['open', fileDir])
    elif config.OS == 'Linux':
        subprocess.call(['xdg-open', fileDir])
    elif config.OS == 'Windows':
        webbrowser.open(fileDir)      
		#subprocess.call(['cmd', fileDir])
    else:
        os.startfile(fileDir)

修改代码后,再次编译还是出现Python文件运行时出现告警:TabError: inconsistent use of tabs and spaces in indentation
原因:
说明Python文件中混有Tab和Space用作格式缩进。这通常是使用外部编辑器编辑Python文件时,自动采用Tab进行格式缩进。
通过sublime去打开文件看得更清楚;
….表示正常,
出现横线则格式不对(虽然肉眼看起来是没有任何变化)
python3.7之itchat 或bot 登录微信时报错:loginCallback=loginCallback, exitCallback=exitCallback)_第1张图片

问题2:
Traceback (most recent call last):
File “wechat1.py”, line 72, in
sendNews()
File “wechat1.py”, line 37, in sendNews
itchat.login()
File “C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-p
ackages\itchat\components\login.py”, line 73, in login
os.remove(picDir or config.DEFAULT_QR)
PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: 'QR.png

以上告警还是无法成功登录微信:
解决方法:
根据告警提示,那个路径下那个文件,第几行代码的问题编译不过,
C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Lib\site-packages\itchat\components下的login.py
把下图两句禁用掉,不影响别的功能;
这两句的意思是:如这个登录时弹出的picDir(就是微信登录的二维码图片所在路径),二维码路径是否存在,存在则删除,直接把这两句干掉,再次编译就OK了。
python3.7之itchat 或bot 登录微信时报错:loginCallback=loginCallback, exitCallback=exitCallback)_第2张图片

你可能感兴趣的:(Python学习)