当Python应用程序在Bluemix端运行但在Bluemix中运行失败时

当Python应用程序在Bluemix端运行但在Bluemix中运行失败时,python,django,flask,ibm-cloud,Python,Django,Flask,Ibm Cloud,这是一个我将自己回答的问题,因为我已经见过无数次了,它真的应该算是一个常见问题 假设您已经创建了一个Flask或Django应用程序,并且它在您的两个测试环境中都在工作——bluemix外部和bluemix内部。 然后进行更改,或者合并一个新的pip导入,现在虽然您的应用程序仍然在您自己的本地环境中运行,但当您将其推送到Bluemix时,它会失败 您可能会看到如下内容: OUT Starting app instance (index 0) with guid .... ERR Instanc

这是一个我将自己回答的问题,因为我已经见过无数次了,它真的应该算是一个常见问题

假设您已经创建了一个Flask或Django应用程序,并且它在您的两个测试环境中都在工作——bluemix外部和bluemix内部。 然后进行更改,或者合并一个新的pip导入,现在虽然您的应用程序仍然在您自己的本地环境中运行,但当您将其推送到Bluemix时,它会失败

您可能会看到如下内容:

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

如果它在本地环境中工作,那么问题在于移植到Bluemix。如果在你做出改变之前它是有效的,那么它就是你添加的东西。当然,假设您没有对Procfile和程序启动方式进行任何更改

这指出了本地环境和Bluemix之间python运行时的差异。将要发生的是,本地运行的python版本支持代码结构(类似于执行迭代的方式),但bluemix上使用的python版本不支持

如果没有runtime.txt文件,请创建一个。将其内容设置为本地环境中的python版本(例如python-3.4.3)

检查Bluemix上的python运行时,查看支持哪些版本的python。如果您的版本不是,那么您需要在manifest.yml文件中显式设置buildpack。例如,buildpack:

我通常这样做是为了将我的应用程序与对默认Bluemix运行时的更改隔离开来

如果这些都没有帮助,那么您已经在只在Bluemix上执行的代码中创建了一个编码错误