Django ipython shell 中 %autoreload 的正确配置是什么?
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这个答案可能也适用于您的情况。 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.