2013-10-31 58 views
2

我最近用git在PyCharm中開始使用Django。有時候我遇到了運行服務器的問題,它顯示了我修復的一些錯誤。爲了解決這個問題,我應該每次手動刪除.pyc文件。然後再次運行服務器。每當我編譯我的源代碼時,如何強制執行它兩個覆蓋.pyc文件?謝謝您的回答。如何在每次重新創建.pyc文件時強制Django?

感謝@ jbat100和@ Leonardo.Z。我想到了。我通過PYTHONDONTWRITEBYTECODE = 1。它是一種魔術。不過,可惜我只能接受一個答案,我希望@ jbat100不會生我的氣。

回答

5

因爲Python 2.6的Python可以從通過供應-B開關Python解釋寫入.pyc文件或.pyo文件,或通過運行解釋器之前設置PYTHONDONTWRITEBYTECODE環境變量防止。

此設置作爲sys.dont_write_bytecode variable可供Python程序使用,並且Python代碼可以更改該值以修改解釋器的行爲。通過:Interpreter Changes

+0

只是澄清。 PYTHONDONTWRITEBYTECODE有價值嗎? – Khamidulla

+0

根據文檔,這個env變量沒有值。 PYTHONDONTWRITEBYTECODE 如果設置了此項,Python將不會嘗試在導入源模塊時編寫.pyc或.pyo文件。這相當於指定-B選項。 – Khamidulla

+0

這對我不起作用我試圖設置兩個,但沒有運氣:( – Khamidulla

2

萊昂納多的前面回答可能是你在找什麼,但你也可以只刪除與外殼

find . -name "*.pyc" -exec rm -rf {} \; 

.pyc文件有一個Django snippet也做

import os 
directory = os.listdir('.') 
for filename in directory: 
    if filename[-3:] == 'pyc': 
     print '- ' + filename 
     os.remove(filename) 

您也可以查看compileall實用程序,該實用程序用於編譯python源文件,並具有強制重新編譯的選項。

+0

你是對的。他是。答案就是我想要的,但它在PyCharm中不起作用,我只是想知道爲什麼它不起作用。 – Khamidulla

相關問題