Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Debugging python code in pycharm

This question is similar to this one. I am trying to debug pyethapp with the following configuration:

debug_app

The entry point is located in app.py. The code runs fine when not being debugged, but once I launch the debugger the following exception is thrown:

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'

The solution suggested here (reinstalling ipython) did not solve the issue (it occurs only when debugging; the client works when run separately).

Edit:

Command line in output:

/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'
like image 419
Sebi Avatar asked May 30 '16 14:05

Sebi


People also ask

Can you step through Python code in PyCharm?

PyCharm provides a set of stepping actions, which are used depending on your strategy (for example, whether you need to go directly to the next line or enter the methods invoked on your way there). The stepping buttons are located on the Debug window toolbar.


1 Answers

This error is known to happen if you use old versions of IPython (in which indeed the method register was not yet implemented). As you presumably use OSX, in which a default Python install is included, there might be some conflicting Ipython copies in your environment, different versions of which are called by the regular and debugging configurations?

This problem is probably resolved by moving the project to a virtual environment in which your root packages cannot interfere.

like image 167
Uvar Avatar answered Sep 18 '22 08:09

Uvar