PyCharm无法找到Spacy模型'en'。

8
我正在尝试在PyCharm中使用Python 2.7加载SpaCy的NLP模型'en'。
我的加载'en'模型的代码是:nlp = spacy.load('en', disable=['parser', 'ner'])
然而,我收到了以下错误:
IOError: [E050] 找不到'model 'en''。它似乎不是一个快捷方式链接,Python包或有效路径到数据目录。
然后我意识到我没有下载该模型,所以我使用PyCharm提供的终端来下载模型,我使用了python -m spacy download en
这是输出内容:

已满足要求: 从 https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.0.0/en_core_web_sm-2.0.0.tar.gz#egg=en_core_web_sm==2.0.0 安装了 en_core_web_sm==2.0.0 到 c:\python27\lib\site-packages。
您正在使用 pip 版本 9.0.1,但版本 18.0 可用。
您应该考虑通过 'python -m pip install --upgrade pip' 命令升级。
您没有足够的权限执行此操作。

链接成功 C:\Python27\lib\site-packages\en_core_web_sm --> C:\Python27\lib\site-packages\spacy\data\en

您现在可以通过 spacy.load('en') 加载模型。

所以我很困惑...我猜测我无法下载'en'模型,因为我没有足够的权限,但是链接成功了怎么办?看到这条消息后,我尝试再次运行我的Python文件(因为终端显示链接成功),但最初的错误又出现了。 有人遇到过这个问题吗?或者知道如何解决这个错误吗?我如何在PyCharm终端中“提升”我的权限,以便能够下载模型?
6个回答

21

我不知道它是否仍然相关,但我也遇到了同样的问题。这个模块在Jupyter Notebook上加载得很好,但在我的PyCharm中却没有。为了解决这个问题,请进入PyCharm项目的解释器(使用ctrl + alt + s)。查看您正在使用的解释器的完整路径。然后在终端中以这种方式使用它:

FULL_PATH_TO_PYTHON_INTERPRTER -m spacy download en

现在应该可以从您的PyCharm中工作了。


5

Spacy介绍了几种下载模型的方法: https://spacy.io/usage/models#download

使用python -m

# Download best-matching version of specific model for your spaCy installation
python -m spacy download en_core_web_sm

# Out-of-the-box: download best-matching default model and create shortcut link
python -m spacy download en

# Download exact model version (doesn't create shortcut link)
python -m spacy download en_core_web_sm-2.2.0 --direct

使用 pip

# With external URL
pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.2.0/en_core_web_sm-2.2.0.tar.gz

# With local file
pip install /Users/you/en_core_web_sm-2.2.0.tar.gz

使用手动下载

https://spacy.io/usage/models#download-manual

现在如何使用 PyCharm 下载它?

我尝试通过在虚拟环境(venv)的项目解释器中安装 URL 包来完成:

https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.2.5/en_core_web_sm-2.2.5.tar.gz

但 Pycharm 无法直接安装 tar。


解决方法: 最终我只需将 tar 的 github URL 添加到 requirements.txt 中,然后 PyCharm 就会为您安装它。

requirements.txt 中添加以下内容

# spacy
spacy
# spacy model
https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.2.5/en_core_web_sm-2.2.5.tar.gz

你可以在github发布页面上为所有模型执行此操作:https://github.com/explosion/spacy-models/releases/

2
实际上,这是在下载新的Spacy模型时发生的情况,如Spacy中所示:
下载命令将通过pip安装模型,将软件包放置在您的site-packages目录中,并创建一个快捷链接,使您可以使用自定义名称加载模型。快捷链接将与在spacy下载中使用的模型名称相同。
看起来您正在系统级别上安装,因此请尝试以“管理员身份运行”,或者您也可以尝试使用virtualenv选项。忽略成功链接消息,因为它只是一个快捷方式。
您还可以参考this进行详细的故障排除指南。

0

如果您正在使用模型的直接链接,请确保链接所下载的模型文件

python -m spacy link [package name or path] [shortcut] [--force]

通常模型文件会下载到your-python-environment/lib/site-packages/目录下。 一旦您下载了tar文件并解压缩了模型文件,您应该会看到一个名为en的文件夹。 有关更多信息,请查看this链接。

0

进入您的虚拟环境,然后通过以下方式激活venv:

source venv/bin/activate

然后激活后输入以下命令: python -m spacy download en_core_web_sm

最后通过以下方式停用虚拟环境: deactivate


0

你可以为Python设置系统变量或打开CMD

C:\ CD ... 转到安装了python.exe或python解释器的目录

C:\解释器路径> python -m spacy download en_core_web_sm

完成,它将安装软件包。您需要确保的是解释器的路径,如果它是公共的,甚至最好从项目中获取路径。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接