2015-06-03 19 views
16

Non riesco a determinare dove ipython stia memorizzando la sua cronologia.Dove si trova il file di cronologia per ipython

a. Non v'è alcun ~/.pythonhistory:

12:49:00/dashboards $ll ~/.py* 
ls: /Users/steve/.py*: No such file or directory 

b. Niente di speciale nel file di avvio di Python:

12:49:07/dashboards $echo $PYTHONSTARTUP 
/shared/.pythonstartup 
12:49:43/dashboards $cat /shared/.pythonstartup 
import rlcompleter 
import readline 

readline.parse_and_bind("tab: complete") 

c. MA: ho un sacco di storia disponibile in ipython quando lo avvio.

Quindi dove viene memorizzata la cronologia?

UPDATE la risposta da @Stefano ha aperto la strada giusta: qui è il percorso effettivo

13:30:05/shared $ll ~/.ipython/profile_default/history.sqlite 
-rw-r--r-- 1 steve staff 372736 Jun 3 12:48 /Users/steve/.ipython/profile_default/history.sqlite 
+0

correlati: se si desidera esportare la storia IPython un file di testo, fare 'storia% -g -f nomefile' –

+0

@ChristianLong Pls fa una risposta e io upvote. – javadba

+0

@javadba, perché non migliorare/completare la migliore risposta esistente? – Dirk

risposta

17

storia IPython viene memorizzato in un database SQLite si trova nella directory del profilo. Per impostazione predefinita:

~/.ipython/profile_default/history.sqlite 

vecchie versioni (1.x) memorizzati dati del profilo in ~/.config/ipython, almeno su piattaforme conformi alla XDG basedir specs (cioè la maggior parte delle distribuzioni Linux).

Ad ogni modo, è possibile individuare la directory profilo con:

$ ipython locate profile default 

Si noti che il database della cronologia è condivisa tra IPython e IPython3, se entrambi sono installati.

+0

Secondo i documenti dovrebbe essere in ['~/.ipython'] (http://ipython.org/ipython-doc/stable/config/intro.html#the-ipython-directory) – mata

+1

@mata apparentemente sono cambiati la posizione predefinita per uniformità nella serie 2.x. Stavo scavando il codice sorgente per riferimento, ma suppongo che il wiki sia più significativo. Grazie per il puntatore. –

+1

Conferma della versione più recente utilizza ~/.ipython/profile_XXXX/history.sqlite path – economy

24

Se si desidera la cronologia IPython in un file di testo normale, è possibile esportarla manualmente.

%history -g -f filename 
+1

Non trovo che '-g' funzioni bene anche per me. Cosa fa '-g'? – zyxue

+1

Senza '-g' esporta la cronologia per la sessione corrente. Con '-g' esporta la cronologia per tutte le sessioni. L'unica documentazione che ho trovato per '-g' è digitando'% quickref' in una shell IPython. –

+0

Quindi ipython registra tutte le cronologie di sessione da quando è stata installata e utilizzata per la prima volta? Questo è un po 'sorprendente ... – zyxue