編輯:我從.pyc文件中發(fā)現(xiàn)了這個問題。出于某種原因,一些編譯器創(chuàng)建了.pyc包含舊代碼的文件。當(dāng)我將文件上傳到服務(wù)器時,服務(wù)器不會編譯.py文件。相反,它將運(yùn)行.pyc從我的計算機(jī)上傳的文件。我刪除了所有.pyc文件,已部署,現(xiàn)在服務(wù)器運(yùn)行新代碼/EDIT當(dāng)我運(yùn)行時,gcloud app deploy我經(jīng)常部署錯誤版本的應(yīng)用程序。我的應(yīng)用程序在 GAE 標(biāo)準(zhǔn)環(huán)境中運(yùn)行,是使用 Python 2.7 編寫的。我可以通過讓我的 URL 之一返回硬編碼字符串來輕松重現(xiàn)該問題,例如"test1". 現(xiàn)在,當(dāng)我在部署之間更改此設(shè)置時,我經(jīng)常會收到來自端點的先前寫入的字符串。在本地服務(wù)器上運(yùn)行應(yīng)用程序時,更改后的返回字符串是正確的,但部署后該字符串可能來自早期版本。我必須將我的應(yīng)用程序部署到測試和生產(chǎn)環(huán)境,我擔(dān)心部署錯誤的代碼。正確部署 gcloud 控制臺時顯示只有 2 個文件正在上傳(如果我只編輯了靜態(tài)返回字符串)。我嘗試從 App Engine 控制臺中刪除所有其他版本。還嘗試使用 flag --stop-previous-version。我還嘗試添加新端點,在 gcloud 說部署成功后,這些端點仍然無法訪問。如何確保我當(dāng)前的代碼得到正確部署?
2 回答

手掌心
TA貢獻(xiàn)1942條經(jīng)驗 獲得超3個贊
您關(guān)于pyc文件的注釋表明您可能已經(jīng)自定義了app.yaml'sskip_files部分并在此過程中意外擦除了其默認(rèn)值,這通常會阻止部署pyc(和其他可能干擾文件)到 GAE。從那個文檔(強(qiáng)調(diào)我的):
該skip_files具有以下默認(rèn):
skip_files:
- ^(.*/)?#.*#$
- ^(.*/)?.*~$
- ^(.*/)?.*\.py[co]$
- ^(.*/)?.*/RCS/.*$
- ^(.*/)?\..*$
默認(rèn)模式的Emacs排除與形式的名稱備份文件 #...#和...?,.pyc和.pyo文件,文件在RCS版本控制目錄和Unix隱藏著以點開始的名稱的文件()。
要擴(kuò)展上述正則表達(dá)式列表,請將上述列表復(fù)制并粘貼到您的app.yaml 并添加您自己的正則表達(dá)式。
因此,不再擔(dān)心手動清理.pyc文件,請確保您的部分中仍然具有上述模式skip_files,特別- ^(.*/)?.*\.py[co]$是負(fù)責(zé).pyc文件的部分。
添加回答
舉報
0/150
提交
取消