我正在尝试部署我在教程中找到的Python应用程序,但它无法启动。
这是我得到的错误:
0个实例正在运行,1个向下运行
0个实例正在运行,1个向下运行
0个实例正在运行,1个向下运行
0个实例正在运行,1个向下运行
0个实例正在运行,1个向下运行
0个实例正在运行,1个向下运行
0个实例正在运行,1个向下运行
0个实例正在运行,1个向下运行
0个实例正在运行,1个向下运行
0个实例正在运行,1个正在运行
0个实例正在运行,1个向下运行
0个实例正在运行,1个向下运行
0个实例正在运行,1个向下运行
0个实例正在运行,1个向下运行
0个实例正在运行,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))
日志:
使用guid 3ae2d9a1-28d9-47af-a7b4-2e311bd763af有效载荷退出API / 1App实例:{“cc_partition”=>“默认”,“droplet”=>“3ae2d9a1-28d9-47af-a7b4-2e311bd763af”, “version”=>“948e02de-d579-4058-8e89-8573af7ca886”,“instance”=>“2f471496fee143cea8e95eb16a05c9e6”,“index”=> 0,“reason”=>“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”=>“默认”,“droplet”=>“3ae2d9a1-28d9-47af-a7b4-2e311bd763af”,“版本” =>“948e02de-d579-4058-8e89-8573af7ca886”,“instance”=>“2f471496fee143cea8e95eb16a05c9e6”,“index”=> 0,“reason”=>“CRASHED”,“exit_status”=> 1 ,“exit_description”=>“app instance exited”,“crash_timestamp”=> 1479457233} 2016-11-18T10:20:33.805 + 0200
DEA / 154启动应用程序实例(索引0),带有guid 3ae2d9a1-28d9-47af-a7b4-2e311bd763af2016-11-18T10:20:26.727 + 0200
API / 4App实例退出guid 3ae2d9a1-28d9-47af-a7b4-2e311bd763af有效载荷:{“cc_partition”=>“默认”,“droplet”=>“3ae2d9a1-28d9-47af-a7b4-2e311bd763af”,“版本” =>“948e02de-d579-4058-8e89-8573af7ca886”,“instance”=>“59b39b134dc347aa8cca9cf93f28ea35”,“index”=> 0,“reason”=>“CRASHED”,“exit_status”=> 1 ,“exit_description”=>“app instance exited”,“crash_timestamp”=> 1479457126} 2016-11-18T10:18:46.849 + 0200
DEA / 186启动应用程序实例(索引0),带有guid 3ae2d9a1-28d9-47af-a7b4-2e311bd763af2016-11-18T10:18:41.744 + 0200
API / 5App实例退出guid 3ae2d9a1-28d9-47af-a7b4-2e311bd763af有效载荷:{“cc_partition”=>“默认”,“droplet”=>“3ae2d9a1-28d9-47af-a7b4-2e311bd763af”,“版本” =>“948e02de-d579-4058-8e89-8573af7ca886”,“instance”=>“0c345d386b924d949255d7a8de0482bc”,“index”=> 0,“reason”=>“CRASHED”,“exit_status”=> 1 ,“exit_description”=>“app instance exited”,“crash_timestamp”=> 1479457067} 2016-11-18T10:17:47.179 + 0200
DEA / 133启动应用程序实例(索引0),带有guid 3ae2d9a1-28d9-47af-a7b4-2e311bd763af2016-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”,“instance”=>“7a8caf7bea6b4de6a45cce7cdc601ded”,“index”=> 0,“reason”=>“CRASHED”,“exit_status”=> 1 ,“exit_description”=>“app instance exited”,“crash_timestamp”=> 1479457006} 2016-11-18T10:16:46.720 + 0200
DEA / 201启动应用实例(索引0),带有guid 3ae2d9a1-28d9-47af-a7b4-2e311bd763af2016-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”,“instance”=>“af4e6ebb4787454b99fdbedef268f5e9”,“index”=> 0,“reason”=>“CRASHED”,“exit_status”=> 1 ,“exit_description”=>“app instance exited”,“crash_timestamp”=> 1479456961} 2016-11-18T10:16:01.387 + 0200
DEA / 145启动应用程序实例(索引0),带有guid 3ae2d9a1-28d9-47af-a7b4-2e311bd763af2016-11-18T10:15:55.778 + 0200
使用guid 3ae2d9a1-28d9-47af-a7b4-2e311bd763af的API / 0更新应用程序({“state”=>“STARTED”})
答案 0 :(得分:1)
Bluemix正在对您的应用运行运行状况检查,该运行检查期望它正在侦听$PORT
环境变量指定的端口。因为您的应用程序没有正在侦听此端口,并且还因为它完成了执行并退出,所以Bluemix认为您的应用程序已崩溃,这就是为什么它显示为无法启动。
如果您运行cf logs <app name> --recent
,将<app name>
替换为您的应用程序名称,您应该会看到日志中print
语句的输出。
如果要在Bluemix上运行此类应用程序,可以使用cf push <app name> --no-route
指定应用程序不会侦听$PORT
环境变量中指定的端口。您还需要以某种方式修改代码,以确保在执行这些print语句后它继续运行(例如:在最后添加一个无限循环)。这将允许Bluemix将您的应用视为处于运行状态,并且可以从cf logs <app name> --recent
命令获得应用程序的输出。