我正在尝试部署在教程中找到的Python应用程序,但无法启动。
这是我得到的错误:
1个实例中有0个正在运行,1个实例已关闭
1个实例中有0个正在运行,1个实例已关闭
1个实例中有0个正在运行,1个实例已关闭
1个实例中有0个正在运行,1个实例已关闭
1个实例中有0个正在运行,1个实例已关闭
1个实例中有0个正在运行,1个实例已关闭
1个实例中有0个正在运行,1个实例已关闭
1个实例中有0个正在运行,1个实例已关闭
1个实例中有0个正在运行,1个实例已关闭
正在运行1个实例中的0个,开始1个
1个实例中有0个正在运行,1个已关闭
1个实例中有0个正在运行,1个实例已关闭
1个实例中有0个正在运行,1个实例已关闭
1个实例中有0个正在运行,1个实例已关闭
1个实例中有0个正在运行,1个实例已关闭
1个实例中有0个正在运行,1个失败
失败
重新启动应用程序时出错:启动失败
这是应用程序:
import json
from os.path import join, dirname
from os import environ
from watson_developer_cloud import VisualRecognitionV3
visual_recognition = VisualRecognitionV3(VisualRecognitionV3.latest_version, api_key='myapikey')
with open(join(dirname(__file__), 'hearts.zip'), 'rb') as hearts, \
open(join(dirname(__file__), 'diamonds.zip'), 'rb') as diamonds, \
open(join(dirname(__file__), 'clubs.zip'), 'rb') as clubs, \
open(join(dirname(__file__), 'spades.zip'), 'rb') as spades :
print "Uploading files..."
print(json.dumps(visual_recognition.create_classifier('Suits', \
hearts_positive_examples=hearts, \
diamonds_positive_examples=diamonds, \
clubs_positive_examples=clubs, \
spades_positive_examples=spades), indent=2))
日志:
API/1App实例以guid 3ae2d9a1-28d9-47af-a7b4-2e311bd763af有效负载退出:{“cc_partition” =>“default”,“droplet” =>“3ae2d9a1-28d9-47af-a7b4-2e311bd763af”,“version” => “948e02de-d579-4058-8e89-8573af7ca886”,“实例” =>“2f471496fee143cea8e95eb16a05c9e6”,“索引” => 0,“原因” =>“CRASHED”,“exit_status” => 1,“exit_description” =>无法启动“,” crash_timestamp“=> 1479457233} 2016-11-18T10:20:33.805 + 0200
API/1App实例以guid 3ae2d9a1-28d9-47af-a7b4-2e311bd763af有效负载退出:{“cc_partition” =>“default”,“droplet” =>“3ae2d9a1-28d9-47af-a7b4-2e311bd763af”,“version” => “948e02de-d579-4058-8e89-8573af7ca886”,“实例” =>“2f471496fee143cea8e95eb16a05c9e6”,“索引” => 0,“原因” =>“CRASHED”,“exit_status” => 1,“exit_description” =>应用程序实例已退出”,“crash_timestamp” => 1479457233} 2016-11-18T10:20:33.805 + 0200
DEA/154使用guid 3ae2d9a1-28d9-47af-a7b4-2e311bd763af2016-11-18T10:20:26.727 + 0200启动应用程序实例(索引0)
API/4App实例以guid 3ae2d9a1-28d9-47af-a7b4-2e311bd763af有效负载退出:{“cc_partition” =>“default”,“droplet” =>“3ae2d9a1-28d9-47af-a7b4-2e311bd763af”,“version” => “948e02de-d579-4058-8e89-8573af7ca886”,“instance” =>“59b39b134dc347aa8cca9cf93f28ea35”,“index” => 0,“reason” =>“CRASHED”,“exit_status” => 1,“exit_description” =>应用程序实例已退出”,“crash_timestamp” => 1479457126} 2016-11-18T10:18:46.849 + 0200
DEA/186使用guid 3ae2d9a1-28d9-47af-a7b4-2e311bd763af2016-11-18T10:18:41.744 + 0200启动应用程序实例(索引0)
API/5App实例以guid 3ae2d9a1-28d9-47af-a7b4-2e311bd763af有效负载退出:{“cc_partition” =>“默认”,“droplet” =>“3ae2d9a1-28d9-47af-a7b4-2e311bd763af”,“版本” => “948e02de-d579-4058-8e89-8573af7ca886”,“实例” =>“0c345d386b924d949255d7a8de0482bc”,“索引” => 0,“原因” =>“CRASHED”,“exit_status” => 1,“exit_description” =>应用程序实例已退出”,“crash_timestamp” => 1479457067} 2016-11-18T10:17:47.179 + 0200
DEA/133使用guid 3ae2d9a1-28d9-47af-a7b4-2e311bd763af2016启动应用程序实例(索引0)2016-11-18T10:17:41.725 + 0200
API/9App实例以guid 3ae2d9a1-28d9-47af-a7b4-2e311bd763af有效负载退出:{“cc_partition” =>“默认”,“droplet” =>“3ae2d9a1-28d9-47af-a7b4-2e311bd763af”,“版本” => “948e02de-d579-4058-8e89-8573af7ca886”,“实例” =>“7a8caf7bea6b4de6a45cce7cdc601ded”,“index” => 0,“原因” =>“CRASHED”,“exit_status” => 1,“exit_description” =>应用程序实例已退出”,“crash_timestamp” => 1479457006} 2016-11-18T10:16:46.720 + 0200
DEA/201使用guid 3ae2d9a1-28d9-47af-a7b4-2e311bd763af2016Starting app instance(index 0)2016-11-18T10:16:41.710 + 0200
API/3App实例以guid 3ae2d9a1-28d9-47af-a7b4-2e311bd763af有效负载退出:{“cc_partition” =>“默认”,“droplet” =>“3ae2d9a1-28d9-47af-a7b4-2e311bd763af”,“版本” => “948e02de-d579-4058-8e89-8573af7ca886”,“实例” =>“af4e6ebb4787454b99fdbedef268f5e9”,“索引” => 0,“原因” =>“CRASHED”,“exit_status” => 1,“exit_description” =>应用程序实例已退出”,“crash_timestamp” => 1479456961} 2016-11-18T10:16:01.387 + 0200
DEA/145使用guid 3ae2d9a1-28d9-47af-a7b4-2e311bd763af2016开始应用程序实例(索引0)2016-11-18T10:15:55.778 + 0200
API/0使用guid 3ae2d9a1-28d9-47af-a7b4-2e311bd763af({“state” =>“STARTED”})的应用程序
最佳答案
Bluemix正在您的应用程序上运行状况检查,希望它正在监听由$PORT
环境变量指定的端口。因为您的应用程序没有监听该端口,并且还因为它完成了执行并退出,所以Bluemix认为您的应用程序已崩溃,这就是为什么它显示为无法启动。
如果运行cf logs <app name> --recent
,将<app name>
替换为应用程序的名称,则应该在日志中看到print
语句的输出。
如果要在Bluemix上运行这种类型的应用程序,则可以使用cf push <app name> --no-route
来指定该应用程序将不在$PORT
环境变量中指定的端口上进行侦听。您还需要以某种方式修改代码,以确保代码在执行这些打印语句后继续运行(例如:在末尾添加无限循环)。这将使Bluemix可以看到您的应用程序处于运行状态,并且该应用程序的输出将可从cf logs <app name> --recent
命令获得。
关于python - Bluemix Python App启动失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40614844/