2016-05-30 18 views
14

Questa domanda è simile a this uno. Sto cercando di eseguire il debug pyethapp con la seguente configurazione:Codice di python di debug in pycharm

debug_app

Il punto di ingresso si trova nella app.py. Il codice funziona benissimo quando non è in fase di debug, ma una volta che lancio il debugger viene lanciata la seguente eccezione:

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' 

La soluzione suggerita here (reinstallazione ipython) non ha risolto il problema (che si verifica solo quando il debug, il client funziona quando viene eseguito separatamente).

Edit:

riga di comando in uscita:

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

Sei sicuro che le tue configurazioni di debug e non di debug utilizzino effettivamente la stessa versione di python? – pvg

+0

Sì, sto usando 2.7.9 per eseguire il debug e per eseguire lo script in modo indipendente. – Sebi

+0

Intendevo l'installazione, davvero, piuttosto che la versione. Forse controlla la casella di controllo 'show command line'. – pvg

risposta

1

Questo errore è noto per accadere se si utilizzano vecchie versioni di IPython (in cui in effetti il ​​metodo register non è stato ancora implementato). Come presumibilmente usi OSX, in cui è inclusa un'installazione Python predefinita, potrebbero esserci alcune copie Ipython in conflitto nel tuo ambiente, diverse versioni delle quali sono chiamate dalle configurazioni regolari e di debugging?

Questo problema viene probabilmente risolto spostando il progetto in un ambiente virtuale in cui i pacchetti radice non possono interferire.

0

per sbarazzarsi di cython missing avvertimento, eseguire:

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

Infine la finestra di debug rimanere pulita di quei temuti avvertimenti e ingombrare.