2011-02-15 77 views
2

我正在使用Google App Engine上的Django項目。我被問到是否有些代碼可以只編譯部署。我可以將Python .pyc文件僅部署到Google App Engine嗎?

所以我想問題是我可以上傳只包含有問題的代碼段的.pyc文件嗎?我已經在應用程序中使用views.pyc文件進行了基本測試,並且不起作用。是否有一些配置或其他設置可讓Google App Engine只使用.pyc文件?

+3

你知道.pyc可以反編譯/反彙編嗎? http://stackoverflow.com/questions/48211/free-python-decompiler-that-is-not-an-online-service – ThiefMaster 2011-02-15 10:09:49

回答

5

我意識到當你問這個問題時你不能這樣做,但是現在你可以,如果你使用Python 2.7。見Sandboxing in Python 2.7

您可以上傳和使用.pyc,但不與.py文件組合。您可以上傳包含.py.pyc文件(或其組合)的zip文件。

1

爲什麼你想這樣做呢?因爲.py文件會上傳到Google基礎架構,並且只有在您明確授予權限時才能看到.py文件。 但是,是的,沒有理由爲什麼上傳只有.pyc文件不應該工作。如果你嘗試它,在你的開發環境中,你會發現它的工作方式就像BaseHTTPServer可以將Python編譯模塊作爲處理程序一樣。 此外,最近的GAE支持python文件的自動預編譯,這意味着只要您更新應用程序,python文件就可以預編譯並提供服務。所以,如果有人希望在應用程序引擎結束時檢查.py文件,您可能需要在appcfg.py上傳過程中使用--no_precompilation

+0

不正確 - 我們不允許用戶上傳Python字節碼。 – 2011-02-15 11:14:56

+0

謝謝你糾正我,尼克。 – 2011-02-15 13:03:51

7

不,你不能 - 你只能上傳源代碼。儘管如此,沒有理由這麼做:您的代碼將在需要時在服務器上進行字節碼編譯,並且在任何情況下都無法訪問您的代碼。

相關問題