javascript - 使用 python 和 spacy lib 部署 js
问题描述
我从来没有这样设置过,我让它在本地运行,但不知道当我将它部署到一个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
然后我开始运行https://github.com/explosion/spaCyspacy
中提到的安装命令spacy documentation
使用此命令安装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
模块?
解决方案
推荐阅读
- async-await - 实现 Web 控制器时异步方法的目的?
- python-3.x - 如何在 excel 文件中搜索一组输入字符串并使用 Python 返回所有匹配的行?
- c# - 实体框架 - 是否真的需要过度使用“EntityState.Unchanged”?
- html - CSS变换翻转效果,Chrome有问题
- javascript - 如何对齐yii2表单域中的文本框?
- java - 使用“提供的”依赖项编译项目
- docker - 用于 asp.net 核心项目的 Docker 容器
- docker - 通过 jenkins 用新建的镜像重启 Docker 容器(在容器中运行)
- angular - 无法在 OpenLayers 函数中调用打字稿函数
- java - java 8中如何比较对象列表和长列表