развертывание JS с Python и Spacy Lib - PullRequest
0 голосов
/ 30 мая 2018

У меня никогда не было такой настройки, я запустил ее локально, но понятия не имею, как мне это сделать, когда я разверну ее в ec2 server

У меня уже работает node app вec2 server, но недавно я добавил spaCy в один из моих API.

Основная логика - вызов API, который запускает узел, и часть скрипта js использует spawn для обработки файла proc.pyи выполнить некоторые вычисления с выходными данными.

Я попытался выполнить следующие настройки для установки на моем сервере, но, конечно, не удалось при вызове API

мое исходное приложение узла находится в /var/www/myApp

Я использовал sudo apt install virtualenv, затем внутри своего /var/www/myApp я выполнил команду virtualenv venv, которая создает виртуальную среду ...

Я сделал source venv/bin/activate, чтобы войти в virtual environment

Затем я начал запускать команды для установки spacy, упомянутые в spacy documentation https://github.com/explosion/spaCy

, использовал эту команду для установки pip install -U spacy и python -m spacy download en

ЗатемЯ запустил python -m spacy validate, чтобы увидеть, установлен ли Spacy, который я получил

Installed models (spaCy v2.0.11)
    /var/www/myApp/venv/local/lib/python2.7/site-packages/spacy

    TYPE        NAME                  MODEL                 VERSION                                   
    package     en-core-web-sm        en_core_web_sm        2.0.0    ✔      
    link        en                    en_core_web_sm        2.0.0    ✔  

, который я считаю, чтоЭто означает, что установка прошла успешно.

Но после этого я не уверен, что мне следует делать, чтобы продолжить.

Я попытался запустить API, но получил это как сообщение об ошибке "err": "Traceback (most recent call last):\n"

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

Был бы очень признателен за любойпомогите, заранее спасибо за любые советы.

РЕДАКТИРОВАТЬ:

мой proc.py код ниже

if __name__ == '__main__':
    import sys
    import json
    import spacy

    nlp = spacy.load('en')
    text = sys.argv[1]
    doc = nlp(text)

    all_noun_tokens = [ token.lemma_ for token in doc
            if (token.pos_ == 'PROPN'
                or token.pos_ == 'NOUN'
                or token.tag_ == 'NN'
                or token.tag_ == 'NNP') ]

    print(json.dumps(all_noun_tokens))

PS Мне интересно, если есть какой-либо конфигурации, которая мне нужнасделать, чтобы мое приложение нашло, где находится virtuanenv, чтобы оно могло обнаружить модуль spacy?

...