【发布时间】:2013-08-05 07:16:53
【问题描述】:
在最后几天,我在我的一个 django 项目中观察到一种非常奇怪的行为:
当我运行一些manage.py 命令时,我发现虽然这些命令被执行了,但它们并没有结束。例如,如果我尝试运行 syncdb:
c:\django> python manage.py syncdb 正在同步... 创建表... 创建表 questions_category 创建表 questions_question 创建表格 questions_answer 安装自定义 SQL ... 安装索引... 从 0 个固定装置中安装了 0 个对象此时我应该得到一个命令输入——但我没有!我与其他各种 manage.py 命令有相同的行为 - 它们运行正常但它们不退出(例如 dumpdata 或 loadata - 数据被转储/加载正常但是当这些完成时我没有得到命令提示符) !有没有人观察到同样的行为?有没有办法调试它?我尝试在我的 settings.py 末尾添加打印语句,我可以毫无问题地看到输出。
另外,我遇到的另一个可能与上述有关的问题是 runserver_plus 命令不再能够找出代码更改。因此,当我运行 manage.py runserver_plus 并更改例如我的 settings.py 时,我会看到:
* 检测到 'C:\\progr\\py\\adeies\\adeies\\settings.py' 的变化,重新加载它停在那里 :( 它不会重新加载应用程序!使用普通的 runserver 可以毫无问题地重新加载应用程序,但是出于显而易见的原因,我更喜欢使用 runserver_plus 命令。
您对如何调试有任何想法吗?
谢谢!
【问题讨论】:
-
尝试在 no reload mod 中运行它,看看你是否遇到这里建议的异常:stackoverflow.com/questions/4167250/…。命令是 python manage.py runserver --noreload
-
您还可以通过提供
-v3选项使命令输出更详细,其中数字是详细级别,3是最高级别。见./manage.py syncdb --help。--traceback也可能会有所帮助。 -
@Ricola3D python manage.py runserver --noreload 工作正常(当然,当我更改它时它不会重新加载应用程序)
-
请列出您正在使用的 (django) 包。我猜有些事情会意外启动一个线程,这可能会导致 Django 挂起(等待所有线程停止)。
-
@bouke 是的!!!!这就是问题所在:我使用了一个名为 django-live-profiler 的包,它使用 zmq 来保存一些统计信息。当我从我的 INSTALLED_APPS 中删除它时,一切都恢复正常了!请添加答案,以便我接受。
标签: python django django-manage.py