2013-08-05 81 views
1

在過去的幾天我觀察我的Django項目的一個非常奇怪的現象:Django的奇怪的行爲:manage.py命令還沒有結束

當我運行一些命令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

嘗試在沒有重裝mod的情況下運行它,看看你是否遇到這裏建議的異常:http://stackoverflow.com/questions/4167250/django-manage-py-runserver-never-finishes-validating-models。命令是__python manage.py runserver --noreload__ – Ricola3D

+0

您也可以通過提供'-v3'選項來使命令輸出更加詳細,其中數字是詳細級別,而'3'是最高的。請參閱'./manage.py syncdb --help'。另外'--traceback'可能會有所幫助。 – rednaw

+0

@ Ricola3D python manage.py runserver --noreload正常工作時(當然它不重新加載應用程序,當我改變它) – Serafeim

回答

1

一些依賴可能會啓動一個線程。Django會等待所有線程科幻在代碼更改時自動重新加載或執行管理命令時。檢查所有依賴關係,以確定哪一個可能導致此問題。