【问题标题】:Debugging python code in pycharm在pycharm中调试python代码
【发布时间】:2016-05-30 14:09:45
【问题描述】:

这个问题类似于this 一个。我正在尝试调试pyethapp 配置如下:

入口点位于 app.py 中。代码在未调试时运行良好,但是一旦我启动调试器,就会引发以下异常:

Failed to import scrypt. This is not a fatal error but does
mean that you cannot create or decrypt privkey jsons that use
scrypt

/usr/local/lib/python2.7/dist-packages/cffi/model.py:526: UserWarning: 'point_conversion_form_t' has no values explicitly defined; next version will refuse to guess which integer type it is meant to be (unsigned/signed, int/long)
  % self._get_c_name())
Traceback (most recent call last):
  File "/home/user/Utils/pycharm-community-2016.1/helpers/pydev/pydevd.py", line 1530, in <module>
    globals = debugger.run(setup['file'], None, None, is_module)
  File "/home/user/Utils/pycharm-community-2016.1/helpers/pydev/pydevd.py", line 937, in run
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "app.py", line 27, in <module>
    from console_service import Console
  File "/home/user/Utils/pycharm-community-2016.1/helpers/pydev/_pydev_bundle/pydev_monkey_qt.py", line 71, in patched_import
    return original_import(name, *args, **kwargs)
  File "console_service.py", line 38, in <module>
    @inputhook_manager.register('gevent')
AttributeError: 'InputHookManager' object has no attribute 'register'

建议的解决方案here(重新安装ipython)并没有解决问题(仅在调试时出现;客户端单独运行时有效)。

编辑:

输出中的命令行:

/usr/bin/python2.7 /home/user/Utils/pycharm-community-2016.1/helpers/pydev/pydevd.py --cmd-line --multiproc --qt-support --client 127.0.0.1 --port 59087 --file app.py --profile testnet --data-dir testnetState/ run
warning: Debugger speedups using cython not found. Run '"/usr/bin/python2.7" "/home/user/Utils/pycharm-community-2016.1/helpers/pydev/setup_cython.py" build_ext --inplace' to build.
pydev debugger: process 20493 is connecting

Connected to pydev debugger (build 145.260)

Failed to import scrypt. This is not a fatal error but does
mean that you cannot create or decrypt privkey jsons that use
scrypt

/usr/local/lib/python2.7/dist-packages/cffi/model.py:526: UserWarning: 'point_conversion_form_t' has no values explicitly defined; next version will refuse to guess which integer type it is meant to be (unsigned/signed, int/long)
  % self._get_c_name())
Traceback (most recent call last):
  File "/home/user/Utils/pycharm-community-2016.1/helpers/pydev/pydevd.py", line 1530, in <module>
    globals = debugger.run(setup['file'], None, None, is_module)
  File "/home/user/Utils/pycharm-community-2016.1/helpers/pydev/pydevd.py", line 937, in run
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "app.py", line 27, in <module>
    from console_service import Console
  File "/home/user/Utils/pycharm-community-2016.1/helpers/pydev/_pydev_bundle/pydev_monkey_qt.py", line 71, in patched_import
    return original_import(name, *args, **kwargs)
  File "console_service.py", line 38, in <module>
    @inputhook_manager.register('gevent')
AttributeError: 'InputHookManager' object has no attribute 'register'

【问题讨论】:

  • 您确定您的调试和非调试配置实际上使用了相同版本的 python?
  • 是的,我正在使用 2.7.9 来独立调试和运行脚本。
  • 我的意思是安装,真的,而不是版本。也许检查“显示命令行”复选框。
  • 勾选复选框后添加输出。
  • 如果您使用旧版本的 IPython(其中确实还没有实现“注册”方法),则会发生此错误。由于您可能使用的是 OSX,其中包含默认的 Python 安装,因此您的环境中可能存在一些冲突的 Ipython 副本,它们的不同版本由常规和调试配置调用?这个问题可能通过将项目移动到您的根包无法干扰的虚拟环境来解决。

标签: python debugging pycharm


【解决方案1】:

如果您使用旧版本的 IPython(其中确实还没有实现方法 register),就会发生此错误。由于您可能使用的是 OSX,其中包含默认的 Python 安装,因此您的环境中可能存在一些冲突的 Ipython 副本,它们的不同版本由常规和调试配置调用?

这个问题可能可以通过将项目移动到根包无法干扰的虚拟环境来解决。

【讨论】:

    【解决方案2】:

    要摆脱cython missing 警告,运行:

    python2  /.......git/liclipse/plugins/org.python.pydev_6.2.0.201711281546/pysrc/setu p_cython.py  build_ext --inplace
    

    最后,调试窗口不会出现那些可怕的警告和混乱。

    【讨论】:

      猜你喜欢
      • 2021-03-10
      • 1970-01-01
      • 2019-11-22
      • 1970-01-01
      • 2021-05-28
      • 2014-11-24
      • 1970-01-01
      • 1970-01-01
      • 2019-01-16
      相关资源
      最近更新 更多