2016-11-25 2 views
0

Я создал некоторые пользовательские классификаторы локально, а затем попытаюсь развернуть на bluemix приложение, которое классифицирует изображение на основе сделанных мной классификаторов.Развертывание приложения визуального распознавания Watson не удается

Когда я пытаюсь развернуть его, он не запускается.

import os 
import json 
from os.path import join, dirname 
from os import environ 
from watson_developer_cloud import VisualRecognitionV3 
import time 
start_time = time.time() 

visual_recognition = VisualRecognitionV3(VisualRecognitionV3.latest_version, api_key='*************') 

with open(join(dirname(__file__), './test170.jpg'), 'rb') as image_file: 
print(json.dumps(visual_recognition.classify(images_file=image_file,threshold=0, classifier_ids=['Angle_971786581']), indent=2)) 

print("--- %s seconds ---" % (time.time() - start_time)) 

Даже если я пытаюсь развернуть простую печать, он failes развернуть, но приложение стартера я получаю от bluemix или колба учебник (https://www.ibm.com/blogs/bluemix/2015/03/simple-hello-world-python-app-using-flask/) я нашел в Интернете развернуть просто отлично.

Я очень новичок в веб-программировании и использовании облачных сервисов, поэтому я полностью потерян.

спасибо.

+0

Вы должны исключить ваш код. Попробуйте запустить код локально и посмотрите, работает ли это в первую очередь. В противном случае это больше проблема с приложением Bluemix, и в этом случае вам может потребоваться опубликовать журналы, связанные с ошибкой. –

+0

@ SimonO'Doherty Мой код работает локально просто отлично. Когда я пытаюсь развернуть, я не могу получить ничего полезного из журналов сообщений, только что приложение разбилось. Кстати, я получаю журналы из опции внутри платформы, потому что cf logs appname --recent дает мне ошибку. –

ответ

3

Bluemix ожидает, что ваше приложение python будет обслуживать порт. Если ваше приложение не обслуживает какой-либо ответ на порт, предполагается, что приложение не запускалось.

# On Bluemix, get the port number from the environment variable PORT 
# When running this app on the local machine, default the port to 8080 
port = int(os.getenv('PORT', 8080)) 


@app.route('/') 
def hello_world(): 
    return 'Hello World! I am running on port ' + str(port) 

if __name__ == '__main__': 
    app.run(host='0.0.0.0', port=port) 

Похоже, вы пишете свой код, чтобы просто выполнить один раз и остановиться. Вместо этого заставьте его выполнять работу, когда кто-то нажимает на ваш URL-адрес, как показано выше в функции hello_world().

Подумайте о том, что вы хотите, чтобы это произошло, когда кто-то идет YOUR_APP_NAME.mybluemix.net

Если вы не хотите, чтобы ваше приложение было приложение WEB, но вместо того, чтобы просто выполнить один раз (фоновый рабочий приложение), затем используйте опцию -no-route в конце команды cf push. Затем, посмотрите на журналы с помощью cf logs appname --recent, чтобы увидеть результат вашего приложения

https://console.ng.bluemix.net/docs/manageapps/depapps.html#deployingapps

+0

Я уже пробовал работать с --no-route, без успеха, но я попробую снова следовать инструкциям из ссылки. Спасибо. –

+0

Обратите внимание, что использование переменной окружения 'VCAP_APP_PORT' устарело и не будет работать в будущих версиях Cloud Foundry, вместо этого вы должны использовать' PORT'. –

+0

Спасибо, я отредактирую свой пример, чтобы отразить это –

0

Основная задача модуля уотсон-разработчик-облако, давая мне ошибку, что не может быть найден.

Я отказался от версии 2.7.12 на python, установив его для всех пользователей. Модифицированный runtime.exe и requirments.txt (необязательно, необязательно). Укомплектованный Диего, используя команду no-route и set-health-check APP_NAME none.

Те устранило проблему, но я до сих пор получить статус выхода 0.

0

при развертывании приложения в bluemix, вы должны иметь requirements.txt, которые включают в себя услуги, которые вы использовали в вашем приложении. так, вы должны оформить ваш requirements.txt, может быть, вы потеряли

watson_developer_cloud 

и затем requirements.txt любит это:

Flask==0.10.1 
watson_developer_cloud 
Смежные вопросы