使用IPython的0.11,如果我鍵入一個函數的定義,像如何在ipython配置文件中定義函數?
def f(s): print s
然後我可以使用該功能在IPython的會議,但我不知道如何在ipython_config.py文件定義 。 如果我只是在文件中輸入函數定義,並嘗試使用它未定義的函數。
有什麼想法?
使用IPython的0.11,如果我鍵入一個函數的定義,像如何在ipython配置文件中定義函數?
def f(s): print s
然後我可以使用該功能在IPython的會議,但我不知道如何在ipython_config.py文件定義 。 如果我只是在文件中輸入函數定義,並嘗試使用它未定義的函數。
有什麼想法?
這裏有兩個答案:
首先,像上面的超級簡單的功能,你可以在exec_lines
定義它們,如:
c.InteractiveShellApp.exec_lines = [ "def f(s): print s" ]
(你可以定義任意複雜的功能,這樣一來,但它很煩人的超越幾行)
對於更復雜的代碼,你可以寫一個腳本,你想在啓動時運行,並添加到列表exec_files
:
c.InteractiveShellApp.exec_files = [ "/path/to/myscript.py" ]
# if you put the script in the profile dir, just the filename will suffice
我們意識到這有點煩人,因此在0.12中,配置文件目錄中會有一個啓動文件夾,並且您放入的所有文件都會自動運行。這實際上是爲exec_files增加了一個額外的glob.glob('*.py')
(當然,你可以在0.11中自己做)。
您需要定義一個python文件,以在ipython啓動時運行。您可以通過設置exec_files
列表做到這一點:
c = get_config()
c.InteractiveShellApp.exec_files = [
'/tmp/mymodule.py'
]
然後我的文件 「/tmp/mymodule.py」:
def foo():
print "bar"
最後,使用此:
$ ipython
In [1]: foo()
bar
更多關於ipython配置文件的信息可以在這裏找到:http://ipython.org/ipython-doc/dev/config/ipython.html
可以在profile目錄中的startup
目錄下的*.py
和*.ipy
文件中定義多行功能。
(注意:*.ipy
和*.py
文件被區別對待。)
配置文件目錄可以使用
$ ipython locate profile
我把腳本配置文件名稱,但必須添加命令行被發現沒有它,配置文件的路徑不起作用。 – skeept