python - 在烧瓶中找不到我的模型的路径
问题描述
我的目录结构如下所示:
- project
- server.py
- test-model (dir)
我的脚本如下所示:
@app.route("/spacy/entities", methods=['GET', 'POST'])
def spacy_entities():
import spacy
nlp = spacy.load('test-model') // also tried './test-model'
找不到模型“测试模型”。它似乎不是快捷链接、Python 包或数据目录的有效路径。
我在 vagrant 中运行这个脚本。
vagrant@homestead:~/Code/sideprojects/project$ pwd
/home/vagrant/Code/sideprojects/project
我尝试过的事情:
1. os.path.realpath('.') -> /home/vagrant/Code
2. os.path.realpath(__file__) -> /home/vagrant/Code/server.py
3. os.path.dirname(os.path.realpath(__file__)) -> /home/vagrant/Code
但它应该/home/vagrant/Code/sideprojects/project
这样才能找到“测试模型”。我究竟做错了什么?
(我试图避免放置硬编码路径)
编辑:我试过:
path = os.path.dirname(os.path.realpath(__file__)) + '/sideprojects/project'
nlp = spacy.load(path + "/test-model")
找不到模型“/home/vagrant/Code/sideprojects/project/test-model”。它似乎不是快捷链接、Python 包或数据目录的有效路径。
完整的错误是:
文件 "server.py",第 40 行,在 spacy_entities nlp = spacy.load(path + "/goal1") 文件 " /home/vagrant/.local/lib/python3.6/site-packages/spacy/init .py ",第 30 行,在负载中返回 util.load_model(name, **overrides) 文件 "/home/vagrant/.local/lib/python3.6/site-packages/spacy/util.py",第 169 行,在 load_model引发 IOError(Errors.E050.format(name=name))
OSError:[E050] 找不到模型“/home/vagrant/Code/sideprojects/project/test-model”。它似乎不是快捷链接、Python 包或数据目录的有效路径。
解决方案
创建一个新的 py 文件modelload.py
,然后在其中创建一个功能load_model
,在此函数中加载 spacy 模型
示例代码
# modelload.py
# just make a script which load model and make a function to it
import spacy
model_path = 'test-model' # modifed this to your path and check if this is working fine and load correctly
def load_model(path=None):
if path is None:
path = model_path
nlp = spacy.load(path)
return nlp
# end
在您的路由脚本/server.py
文件中将此模型导入为这样的对象
# server.py
@app.route("/spacy/entities", methods=['GET', 'POST'])
def spacy_entities():
from modelload import load_model
nlp = load_model()
"""give other model names if you want to laod new model
by default it is `test-model`"""
推荐阅读
- python - 将值附加到嵌套字典中的列表
- flutter - Flutter Web:读取和写入查询字符串值
- php - PHP:我在数据库中插入 1 条记录,但它自动插入 2
- javascript - 将 Object.entries() 减少为字符串并获得随机逗号
- ruby-on-rails - 如何编写远程请求规范?
- android - 动态创建的 EditText 出现在模拟器中,但未出现在设备上
- function - 如何在 SSRS 中使用 LookUpSet 对 Join 函数中的值进行排序?
- python - 使用 boto3 假设角色与网络身份
- php - 将自定义 Woocommerce 短代码转换为 archive-product.php 的 php 代码
- applescript - AppleScript:如何从字符串中提取数字?