我的目标是调用ipython
,同时将所有输入/输出记录到IPython,并看到如下内容:
stu@stumac ~ $ ipython
In [1]: exit
stu@stumac ~ $
如果我设置
,可以轻松删除横幅 c.TerminalIPythonApp.display_banner = False
在我的
~/.ipython/profile-default/ipython_config.py
档案。
但是如何在记录事情的同时清理创业公司?
在全新安装中,如果我在没有参数的情况下启动IPython,我会看到:
sente@og ~ $ 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
sente@og ~ $
如果我在调用IPython时传递logfile=logfile.txt
参数,我会看到:
sente@og ~ $ 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
sente@og ~ $
如何在不向终端添加额外混乱的情况下使用日志记录:
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
在其他机器上,我已将IPython配置为通过包含行.ipython/profile_default/startup/01-log-everything.py
来自动记录事物:
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)
导致与添加--logfile=logfile.txt
任何有关如何正确执行此操作的帮助将不胜感激。我可以,如果没有别的重定向sys.stdout,配置日志,然后重置sys.stdout,但我希望有一个不那么hackish解决方案。
答案 0 :(得分:4)
要使用没有横幅的日志,请使用--no-banner标志。
ipython --no-banner --logfile='logfile.txt'
可以在使用--help-all标志显示的帮助文件中找到。
ipython --help-all
答案 1 :(得分:4)
查看IPython源代码后,即:
这似乎是真正实现我想要的唯一方法 - 完成日志记录没有在启动时回显的任何东西 - 是重定向或静音{{1}初始化日志时。
我创建了一个启动文件:~/.ipython/profile_default/startup/01-log-everything.py执行此操作,代码为:
sys.stdout