Отладка кода python в pycharm

Этот вопрос похож на этот. Я пытаюсь отлаживать pyethapp со следующей конфигурацией:

debug_app

Точка входа находится в 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), не решило проблему (это происходит только при отладке, клиент работает при запуске отдельно).

Edit:

Командная строка на выходе:

/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'

Ответ 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

Наконец, окно отладки остается чистым от этих страшных предупреждений и захламлений.