Moim celem jest wywołanie ipython
, a także zalogowaniu wszystkie wejścia/wyjścia do ipython i zobaczyć coś takiego:Jak mogę logować dane wyjściowe IPythona bez brzydkich 7 linii informacji logowania na każdym ładowaniu?
[email protected] ~ $ ipython
In [1]: exit
[email protected] ~ $
Banner mogą być łatwo usunięte, jeśli mogę ustawić
c.TerminalIPythonApp.display_banner = False
w mój plik ~/.ipython/profile-default/ipython_config.py
.
Ale jak mogę uzyskać to czyste od uruchamiania, a także rejestrowanie rzeczy?
Na nową instalację, jeśli zacznę ipython bez parametrów widzę:
[email protected] ~ $ ipython
Python 2.7.3 (default, Jun 20 2013, 12:50:58)
Type "copyright", "credits" or "license" for more information.
IPython 0.13.2 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]: exit
[email protected] ~ $
Jeśli mijam logfile=logfile.txt
argumentu przy wywołaniu ipython widzę:
[email protected] ~ $ ipython --logfile=logfile.txt
Activating auto-logging. Current session state plus future input saved.
Filename : logfile.txt
Mode : backup
Output logging : False
Raw input log : False
Timestamping : False
State : active
Python 2.7.3 (default, Jun 20 2013, 12:50:58)
Type "copyright", "credits" or "license" for more information.
IPython 0.13.2 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]: exit
[email protected] ~ $
Jak mogę używać logowanie bez dodawania dodatkowego bałaganu do mojego terminala:
Activating auto-logging. Current session state plus future input saved.
Filename : logfile.txt
Mode : backup
Output logging : False
Raw input log : False
Timestamping : False
State : active
na innych maszynach mam ipython skonfigurowany do automatycznego rzeczy zalogować przez posiadające .ipython/profile_default/startup/01-log-everything.py
który zawiera wiersze:
from time import strftime
import os.path
ip = get_ipython()
ldir = ip.profile_dir.log_dir
fname = strftime('%Y-%m-%d-%H-%M-%S') + ".py"
filename = os.path.join(ldir, fname)
ip.run_line_magic('logstart', '-o %s append' % filename)
co skutkuje tym samym bałaganu jak kiedy dodać --logfile=logfile.txt
jakiejkolwiek pomocy, jak prawidłowo zrobić to byłoby docenione. Mógłbym, jeśli nic innego, przekierować sys.stdout, skonfigurować rejestrowanie, a następnie zresetować sys.stdout, ale mam nadzieję, że jest mniej hackish rozwiązanie.
Podobny pytano tutaj: http: // stackoverflow.com/questions/947810 – BugoK
@BugoK, dzięki - pytanie w tym poście jest trochę podobne, ale myślę, że to, co próbuję zrobić, jest bardzo specyficzne i nie jest adresowane w tym poście ani nigdzie indziej, najlepiej jak mogę. –