3

我有一个使用 iPython 与之交互的 Django 产品。

我试图在启动 shell 时自动加载模块:

python manage.py 外壳

我已将 .ipython/ipythonrc 复制到项目的根目录并添加到文件中:

进口一些模块名称模型1模型2

但是,当我启动 shell 时,并没有加载这些名称。

我究竟做错了什么?

4

3 回答 3

5

我不知道 ipythonrc,但如果你只需要模型,你可以使用django-extensions. 安装后,您将获得大量新的管理命令,包括shell_plus,它将打开 ipython 会话并自动加载所有模型:

python manage.py shell_plus
于 2009-07-01T16:53:19.990 回答
1

BryanWheelock 您的解决方案将不起作用,因为您的外壳是生成的结果,而不是与它的直接交互。你想做的是这个——或者至少这是我做的。

在您的工作区(您键入的地方python manage.py shell)中创建一个 ipythonrc 文件。在其中放入以下内容:

include ~/.ipython/ipythonrc

execute from django.contrib.auth.models import User
# .
# .
# .
execute import_some module_name model1 model2

例如,我还在我的中添加了以下几行..

# Setup Logging
execute import sys
execute import logging
execute loglevel = logging.DEBUG
execute logging.basicConfig(format="%(levelname)-8s %(asctime)s %(name)s %(message)s", datefmt='%m/%d/%y %H:%M:%S', stream=sys.stdout )
execute log = logging.getLogger("")
execute log.setLevel(loglevel)
execute log.debug("Logging has been initialized from ipythonrc")
execute log.debug("Root Logger has been established - use \"log.LEVEL(MSG)\"")
execute log.setLevel(loglevel)
execute log.debug("log.setlevel(logging.DEBUG)")
execute print ""

这允许您在模块中使用日志记录并使其保持干燥。希望这可以帮助。

于 2009-08-19T23:19:52.270 回答
0

shell_plusdjango-extensions 的命令可以自动导入模型,但似乎无法加载 ipython 的配置文件。我做了一些 hacky 工作来完成这件事。

用于start_ipython启动 ipython shell 而不是embed并向其传递一些参数。

我也写了一篇博文,你可以在这里找到详细信息

于 2015-04-05T13:32:35.113 回答