我要回答自己这个问题,因为我已经看到了无数次了,所以它确实应该算是一个常见问题解答。
假设您已经创建了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:https : //github.com/cloudfoundry/python-buildpack#v1.5.1
无论如何,我通常都会这样做,以使我的应用程序免受对默认Bluemix运行时所做的更改的影响。
如果以上方法均无济于事,那么您已经在仅在Bluemix上执行的代码中创建了编码错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句