gpt4 book ai didi

django - Django 1.7 在 mod-wsgi 上的代码更改监控出现故障

转载 作者:行者123 更新时间:2023-12-04 12:58:12 24 4
gpt4 key购买 nike

这是我在所有在 mod_wsgi 中运行 Django 1.7 的网站上遇到的问题。问题的关键在于,如果在本地开发时,我在代码库中引入了一个 fatal error ,然后对其进行了更正,代码监控脚本不会检测到更正。

我用 Graham Dumpleton's monitor.py script在本地开发时检测代码库的更改(我使用 apache 而不是 Django 开发服务器)。

它总是在 Django <= 1.6 中工作,但在 Django 1.7 中我收到以下错误:

File "/home/me/.virtualenvs/myvirtualenv/lib/python2.7/site-packages/django/core/wsgi.py", line 14, in get_wsgi_application
django.setup()
File "/home/me/virtualenvs/myvirtualenv/lib/python2.7/site-packages/django/__init__.py", line 21, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/me/.virtualenvs/myvirtualenv/lib/python2.7/site-packages/django/apps/registry.py", line 78, in populate
raise RuntimeError("populate() isn't reentrant")
RuntimeError: populate() isn't reentrant

令人恼火的是,如果我纠正了错误,monitor.py 不会检测到更改,所以我必须重新启动 apache,或者触摸另一个已经加载的文件(例如设置文件)。

我认为这是因为“重新加载代码只监视导入的文件(又名 sys.modules)”( source)。所以因为错误的文件没有成功导入,monitor.py 不知道重启进程。

最佳答案

我不确定您的部署过程和生产操作系统是什么,但在 Linux/Ubuntu 世界中有一个名为 pyclean 的操作系统命令。在我的 Django/Python 部署脚本期间(通常通过结构),我发出命令“pyclean”。在项目根目录中。此脚本递归删除从当前文件夹开始的所有 .pyc 文件。我希望这有帮助。

关于django - Django 1.7 在 mod-wsgi 上的代码更改监控出现故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27232732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com