在过去的几天里,我在我的一个django项目中观察到一种非常奇怪的行为:
当我运行一些manage.py命令时,我看到虽然命令已执行,但它们不会结束。例如,如果我尝试运行syncdb:
c:\django> python manage.py syncdb Syncing... Creating tables ... Creating table questions_category Creating table questions_question Creating table questions_answer Installing custom SQL ... Installing indexes ... Installed 0 object(s) from 0 fixture(s)
此时我应该输入命令 - 但我没有!我有各种其他manage.py命令的相同行为 - 它们运行正常,但它们不退出(例如dumpdata或loadata - 数据被转储/加载好,但是当这些完成时我没有得到命令提示符) !有没有人观察到同样的行为?有没有办法调试?我尝试在settings.py的末尾添加print语句,我可以看到输出没有问题。
此外,我可能与上述相关的另一个问题是runserver_plus命令不再能够找到代码更改。所以,当我运行manage.py runserver_plus并更改我的settings.py时,我看到了:
* Detected change in 'C:\\progr\\py\\adeies\\adeies\\settings.py', reloading
它停在那里:(它没有重新加载应用程序!使用普通的runserver重新加载应用程序没有问题,但出于显而易见的原因,我更喜欢使用runserver_plus命令。
您对如何调试有任何想法吗?
谢谢!
答案 0 :(得分:1)
某些依赖项可能会启动一个线程。当代码更改自动重载或执行管理命令时,Django将等待所有线程完成。检查所有依赖项以确定哪个可能导致此问题。