使用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