首页 > 解决方案 > 在烧瓶中找不到我的模型的路径

问题描述

我的目录结构如下所示:

- 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 包或数据目录的有效路径。

标签: pythonflask

解决方案


创建一个新的 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`"""

推荐阅读