我发现了一种方法,如果你使用的是django-extensions-shell_plus。这有点老套,但是通过这种方式,你的启动文件是完全自动加载的,你不必在ipython会话开始时输入任何run命令。在
因此,我从django_extensions dir编辑了文件shells.py,在我的例子中它位于/usr/local/lib/python2.7/dist-packages/django_extensions/management/shells.py。我在函数import_objects(options, style):中添加了这些行,因此它导入由环境参数PYTHONSTARTUP定义的文件startup.py的内容。在def import_objects(options, style):
# (...)
import os, sys, pkgutil
if 'PYTHONSTARTUP' in os.environ:
try:
sys.path.append(os.environ['PYTHONSTARTUP'])
import startup
content = [element for element in dir(startup) if not element.startswith('__')]
for element in content:
imported_objects[element] = getattr(startup, element)
except Exception, ex:
sys.exit("Could not import startup module content, Error:\n%s" % ex)
现在,当我启动shell_plus-shell时,我将环境变量赋给我的启动python脚本。我启动shell的bash脚本如下所示:
^{pr2}$
现在我可以访问中定义的所有方法和变量启动.py从ipython会议开始。在
因此,您可以重用它,并为每个项目定制启动文件,预加载不同的方面。在
也许有一个更干净的方法来包含我添加到shell.py?但目前这种方法对我来说还不错。在