我遇到了一個非常奇怪的問題。我已經將一些Python代碼從一個版本更改爲下一代,並且它似乎破壞了代碼(儘管通過了測試)。當我去添加一個調試語句時,代碼開始正常工作。再次嘗試失敗。經過試驗,我意識到只有在pyc文件被更改或刪除之後,它才能在一次運行中運行。什麼??有沒有其他人經歷過這個?任何想法來解決這個問題?Python代碼暫時工作只有當pyc文件改變
tldr:代碼只有在pyc改變或刪除後才能正常工作,然後停止工作。
編輯:它似乎是問題是pyc文件本身。我編譯了pyc文件而沒有運行代碼,並嘗試運行它,它不起作用。 我做了一些研究,我認爲python創建這些pyc的方式是當我嘗試運行它時,它將它加載到環境中,然後創建pyc。這意味着它在從源代碼加載時起作用,但在從pyc加載時失敗。
沒有你的程序有副作用,其活得比過程?文件,FS鎖,數據庫更新?您是在本地運行,還是遠程/網絡驅動器上的任何文件? – shx2 2013-05-08 20:26:10
似乎沒有任何副作用。我正在運行一個ssh終端。 – amustafa 2013-05-08 20:34:22
作爲更新,我從未找到滿意的解決方案。我現在所做的就是不生成pyc文件。我的應用程序在開始時導入一次,並在後臺運行,所以這不是一個問題。 – amustafa 2013-06-19 08:21:43