Django ipython shell 中 %autoreload 的正确配置是什么?

发布于 2024-09-04 04:01:14 字数 577 浏览 6 评论 0原文

Ipython 有一个名为 autoreload 的插件,它可能会在每个命令后重新加载所有模块,因此您可以更改源代码,而不必退出 shell 并重新输入所有命令。请参阅http://dsnra.jpl.nasa.gov/software/Python/例如 Tips-ipython.html

然而,当与 Django 一起使用时,这看起来充其量是不稳定的,例如 python 管理.py shell 给我一个带有 Django 上下文的 IPython shell,但自动重新加载似乎根本无法可靠地工作。

以下是我添加到 ipy_user_conf.py 文件中的内容:

def main():
    ... # rest of the fn here
    import ipy_autoreload
    ip.magic('%autoreload 2')

自动重新加载在有限的情况下有效,可能是 10-20% 的时间。 有人成功配置它以与 Django 一起使用吗?

Ipython has a plugin called autoreload that will presumably reload all your modules after every command, so you can change the source and not have to quit the shell and reenter all your commands. See http://dsnra.jpl.nasa.gov/software/Python/tips-ipython.html for example.

However, this seems flaky at best when using it with Django, e.g.
python manage.py shell
gives me an IPython shell with Django context, but the autoreloading does NOT seem to work reliably at all.

Here's what I have added to my ipy_user_conf.py file:

def main():
    ... # rest of the fn here
    import ipy_autoreload
    ip.magic('%autoreload 2')

The autoreloading works in limited cases, maybe 10-20% of the time.
Has anyone successfully configured this to work with Django?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

决绝 2024-09-11 04:01:14

这个答案可能也适用于您的情况。 Django 保留所有模型的自己的缓存,因此如果您想重新加载所有内容,则必须手动清理此缓存。

This answer might also be applicable to your situation. Django keeps its own cache of all models, so if you want to reload everything, you have to clean this cache manually.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文