如果输入函数定义,请使用ipython 0.11,例如
def f(s): print s
然后我可以在ipython会话中使用该函数,但我不知道如何定义它 在ipython_config.py文件中。 如果我只是在文件中键入函数定义并尝试使用它未定义的函数。
有什么想法吗?
答案 0 :(得分:8)
这里有两个答案:
首先,对于 super 这样的简单函数,您可以在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中自己做)。
答案 1 :(得分:2)
你需要定义一个在ipython启动时运行的python文件。您可以通过设置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
答案 2 :(得分:0)
可以在配置文件目录中*.py
目录下的*.ipy
和startup
文件中定义多行功能。
(请注意*.ipy
和*.py
文件的处理方式不同。)
可以使用
从命令行中发现配置文件目录$ ipython locate profile