2

で始まるipythonの設定ファイルはどこc = get_config()で実行されますか?ipythonで実行される順序、たとえば、として含まれている場合に特定のコマンドが機能しない理由を理解したいので、質問していc.InteractiveShellApp.exec_linesます。

これは私の他の質問、Log IPython outputに関連していますか?、属性にアクセスしたいのですloggerが、構成ファイルでその属性にアクセスする方法がわかりません。exec_lines実行されるまでに、ロガーはすでに開始されています(手遅れです)。

編集:でスタートアップファイルを使用することに基づく解決策を受け入れましたipython0.12+。そのソリューションの私の実装は次のとおりです。

from time import strftime
import os.path

ip = get_ipython()

#ldir = ip.profile_dir.log_dir 
ldir = os.getcwd()
fname = 'ipython_log_' + strftime('%Y-%m-%d') + ".py"
filename = os.path.join(ldir, fname)
notnew = os.path.exists(filename)


try:
  ip.magic('logstart -o %s append' % filename)
  if notnew:
      ip.logger.log_write( u"########################################################\n" ) 
  else:
      ip.logger.log_write( u"#!/usr/bin/env python\n" )
      ip.logger.log_write( u"# " + fname + "\n" )
      ip.logger.log_write( u"# IPython automatic logging file\n" )
  ip.logger.log_write( u"# " + '# Started Logging At: '+ strftime('%Y-%m-%d %H:%M:%S\n') ) 
  ip.logger.log_write( u"########################################################\n" ) 
  print " Logging to "+filename
except RuntimeError:
    print " Already logging to "+ip.logger.logfname

リンクされた提案されたソリューションとの微妙な違いは2つだけです:1。ログをcwdログディレクトリの代わりに保存します(私はそれがもっと好きですが...)2。ip.magic_logstart存在しないようですが、代わりに使用する必要がありますip.magic('logstart')

4

1 に答える 1

3

構成システムは、関数を含む特別な名前空間を設定し、構成get_config()ファイルを実行し、値を収集して、作成時にオブジェクトに適用します。前の質問を参照すると、出力をログに記録するための構成値があるようには見えません。より正確に制御できる場合は、構成後に自分自身のログを開始することをお勧めします。ロギングを自動的に開始するこの例を参照してください。

あなたの他の質問では、1 つのシステムで 0.10.2 に制限されていることが言及されています。これには、同じファイルを見てもいない完全に異なる構成システムがあります。

于 2012-08-08T00:55:37.023 に答える