2012-05-30 37 views

回答

2

我不認爲真的有。 .pyc文件是緩存的字節碼文件,並且您可以節省啓動時間,因爲每次啓動解釋器時,Python都不必重新編譯您的python文件。

頂多關掉字節碼編譯用於測量解釋多少時間花在這一步。如果你想比較多少時間保存,刪除所有.pyc文件在您的項目,並通過使用-B切換到解釋時間的Python:

$ time python -B yourproject 

則沒有-B開關再次運行:

$ time python yourproject 

可能是您要運行程序的用戶沒有對源代碼目錄的寫入權限;例如,您不希望遠程用戶有任何機會通過漏洞更改您的源代碼的Web服務器。在這種情況下,我會使用包含的compileall module來對使用特權用戶的所有內容進行字節編譯,而不是放棄編寫.pyc文件。

+1

我想你錯過了這個問題... – sloth

+0

@dkson - 實際上他沒有,即使我認爲這是一個部分的答案 – Jonathan

+0

@dkson:不,我沒有,但我用它措辭不佳。 –

0

這是可能的pyc文件可能會鼓勵人們認爲他們不需要維護/船的原始來源。 pyc文件可能不能在操作系統和Python版本之間移植。在移動Python模塊時,將pyc文件放在後面並僅複製或發佈源代碼並讓主機python生成新的pyc文件比較安全。

順便說一句,在Python 3.2 pyc文件不再進入源文件夾,但在__pycache__(源文件夾)。

+2

'.pyc'文件確實在Python版本之間不可移植,除非你打包了一個特定的python版本,否則你不應該用這些文件發佈代碼。 –

1

我能想到的一個原因是:在開發過程中,如果您刪除或重命名.py文件,.pyc文件將保留在您的本地副本中,其中包含舊名稱和舊字節碼。由於您通常不會將.pyc文件提交到版本控制,因此可能會導致在您的計算機上不會發生的流浪ImportError,但會在其他計算機上執行。