Quando il debug di script Python utilizzando ipdb my_script.py
, voglio usare ipython funzioni magiche come %paste
, %cd
in ipdb
guscio sessione di debug. È possibile e come?Usa ipython funzioni magiche in IPDB guscio
risposta
In base alle funzioni magiche IPython ipdb Github repo non disponibili. Fortunatamente, lo IPython debugger fornisce un paio di indizi su come ottenere questa funzionalità senza avviare una shell IPython separata.
Ecco che cosa ho fatto di correre %cpaste
:
ipdb> from IPython import get_ipython
ipdb> shell = get_ipython()
ipdb> shell.find_line_magic('cpaste')()
Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
:for i in range(0,5):
: print i
:--
0
1
2
3
4
In questo modo, è possibile scorrere il codice e avere accesso a tutte le funzioni magiche ipython tramite il metodo find_line_magic(your_magic_function)
.
È possibile aprire una shell IPython all'interno di uno stack, proprio come fa pdb. Effettuare quanto segue:
- Importa embed() da IPython e inseriscilo nel codice.
- eseguire lo script
Esempio:
from IPython import embed
def some_func():
i = 0
embed()
return 0
In Python shell:
>>> te.func()
IPython 1.0.0 -- An enhanced Interactive Python.
(...)
In [1]: %whos
Variable Type Data/Info
i int 0
In [2]:
era quello che stavi cercando?
Mi piacerebbe utilizzare le funzioni magiche senza importare alcuna funzione IPython nel mio codice. – fossilet
perché? è solo una questione di comodità personale? – gg349
@flebool, sarebbe abbastanza comodo accedere alle funzioni magiche ovunque e ogni volta che il programma viene arrestato (sospeso) dal debugger senza dover programmare i breakpoint nel mio programma. – fossilet
- 1. Elenco delle funzioni "magiche" di Scala
- 2. Ottieni il completamento della scheda IPython per ipdb
- 3. ImportError: nessun modulo chiamato 'ipdb'
- 4. ipdb con modulo unittest python
- 5. Come funzionano le funzioni magiche e coercizione/magica di Python?
- 6. Come eseguire il completamento automatico in un notebook iPython mentre su ipdb?
- 7. Cosa significa "*** Frame più vecchio" in ipdb?
- 8. String magiche in ASP.NET MVC
- 9. Passaggio a una funzione in IPython
- 10. IPDB e il metodo di documentazione
- 11. Linux - Linebreak in IPython
- 12. numero galleggiante guscio in espr
- 13. caratteri di escape in guscio
- 14. ipdb, thread multipli e programmi di autoroading che causano ProgrammingError
- 15. debugger ipdb, passo fuori ciclo
- 16. È possibile eseguire comandi in IPython con il debug?
- 17. Processing commenti guscio in stile in JSON
- 18. Scheda IPython Notebook completa - Mostra docstring
- 19. IPython: possibile l'interlinea singola?
- 20. Analisi ps e grep uscita in guscio
- 21. query di aggiornamento in MongoDB guscio
- 22. Come importare NumPy in guscio pitone
- 23. l'importazione di un modulo in guscio Idle
- 24. Devo evitare le stringhe magiche possibile?
- 25. Salesforce - SOQL Usa mod() o funzioni matematiche simili in SELECT?
- 26. Perché GLib non usa 'const' in queste funzioni?
- 27. completamento Tab in ipython per gli elementi della lista
- 28. Posso fare uscire ipython dal codice chiamante?
- 29. Come chiamare ipdb quando un test fallisce nel test di django?
- 30. ipython - disattivare messaggio di benvenuto
Puoi passare il contesto (ad esempio le variabili locali) di ipdb a 'cpaste'? –