2015-11-24 25 views
4

這是一個我要回答自己的問題,因爲我已經看到它無數次,它確實應該算作一個FAQ。當一個Python應用程序運行在Bluemix一側但在Bluemix中運行時失敗

假設您已經創建了一個Flask或Django應用程序,它可以在您的兩個測試環境中工作 - 除了bluemix和bluemix之外。 然後,您進行更改或合併新的pip導入,現在儘管您的應用程序仍然在您自己的本地環境中運行,但是當您將其推送到Bluemix時,它會失敗。

您可能會看到類似這樣的:

OUT Starting app instance (index 0) with guid .... 
ERR Instance (index 0) failed to start accepting connections 

回答

3

如果在您的本地環境中工作,那麼問題就在於移植到Bluemix。如果它在您進行更改之前正在工作,那麼您已添加了它的某些內容。當然假設你沒有改變你的Procfile,以及程序啓動的方式。

這指出了本地環境和Bluemix之間python運行時的差異。會發生什麼情況是,在本地運行的python版本中支持代碼結構(類似於執行迭代的方式),但不支持您在bluemix上使用的python版本。

如果您沒有runtime.txt文件,請創建一個。將其內容設置爲您在本地環境中使用的python版本(例如,python-3.4.3)

檢查Bluemix上的python運行時,以查看哪些版本的python受支持。如果您的版本不是,那麼您需要在manifest.yml文件中顯式設置buildpack。例如。 buildpack:https://github.com/cloudfoundry/python-buildpack#v1.5.1

我通常這樣做是爲了讓我的應用程序免受更改默認Bluemix運行時的影響。

如果這些都沒有幫助,那麼您已經在僅在Bluemix上執行的代碼中創建了編碼錯誤。

相關問題