pythonマイクロ信号スキャンコードログイン障害解決

2475 ワード

最近wxpyというモジュールで微信機能を実現し、プログラムはしばらく実行され、突然ある日コードをスキャンした後、遅々としてログインせず、ctrl+cがプログラムを終了した後、次のようにエラーを報告した.
/usr/local/lib/python2.7/dist-packages/wxpy/api/bot.py, line 88, in __init__
    except FileNotFoundError as e:
NameError: global name 'FileNotFoundError' is not defined

それでbot.pyの88行の
except FileNotFoundError as e:

次のように変更します.
 except IOError as e:

再度コードをスキャンして登録し、次のようにエラーを報告します.
Traceback (most recent call last):
  File "./copyUSB.py", line 12, in 
    bot = wxpy.Bot()
  File "/usr/local/lib/python2.7/dist-packages/wxpy/api/bot.py", line 86, in __init__
    loginCallback=login_callback, exitCallback=logout_callback
  File "/usr/local/lib/python2.7/dist-packages/itchat/components/register.py", line 36, in auto_login
    loginCallback=loginCallback, exitCallback=exitCallback)
  File "/usr/local/lib/python2.7/dist-packages/itchat/components/login.py", line 49, in login
    picDir=picDir, qrCallback=qrCallback)
  File "/usr/local/lib/python2.7/dist-packages/itchat/components/login.py", line 123, in get_QR
    utils.print_qr(picDir)
  File "/usr/local/lib/python2.7/dist-packages/itchat/utils.py", line 83, in print_qr
    subprocess.call(['xdg-open', fileDir])
  File "/usr/lib/python2.7/subprocess.py", line 168, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.7/subprocess.py", line 1073, in wait
    pid, sts = _eintr_retry_call(os.waitpid, self.pid, 0)
  File "/usr/lib/python2.7/subprocess.py", line 121, in _eintr_retry_call
    return func(*args)
KeyboardInterrupt

次のようになります.
 subprocess.call(['xdg-open', fileDir]) #       Linux           

および関連:
 File "/usr/lib/python2.7/subprocess.py", line 168, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.7/subprocess.py", line 1073, in wait
    pid, sts = _eintr_retry_call(os.waitpid, self.pid, 0)
  File "/usr/lib/python2.7/subprocess.py", line 121, in _eintr_retry_call
    return func(*args)


私はwxpyがLinuxグラフィックの下のQRコード処理にバグがあるのではないかと疑って、微信のQRコードをテキスト端末に表示することにしました.
bot = wxpy.Bot()

に改心
bot = wxpy.Bot(console_qr=True)

プログラムを再実行し、テキスト端末のスキャンログインに成功しました.
The end.