7

私の目的は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 ~ $

logfile=logfile.txtIPython を呼び出すときに引数を渡すと、次のように表示されます。

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/profile_default/startup/01-log-everything.py他のマシンでは、次の行を含むを使用して自動的にログを記録するように IPython を構成しています。

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 をリセットすることはできますが、ハックの少ない解決策があることを願っています。

4

2 に答える 2

4

バナーなしでログに記録するには、 --no-banner フラグを使用します。

ipython --no-banner --logfile='logfile.txt'

これは、 --help-all フラグで表示されるヘルプ ファイルにあります。

ipython --help-all
于 2013-06-28T11:12:03.233 に答える