python 安装问题 - anaconda 环境中的 spacy 包

install issue with python - spacy package in anaconda environment

我正在尝试按照 this tutorial 将自然语言处理包 spaCy 安装到 python 3 anaconda 环境中,windows 8

我打开控制台,cd-ed 到我的 site-packages 文件夹,激活环境,pip-ed 进行安装,一切似乎都很好,除了我不能运行 这里的第二个命令

$ pip install spacy
$ python -m spacy.en.download

现在我可以成功加载包但是当我 运行 下面的第二行时,我得到以下错误

>>> from spacy.en import English   #this works
>>> nlp = English()                #this doesn't


Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\garrett\Anaconda\envs\py3k\lib\site-packages\spacy\en\__init__.py", line 64, in __init__
    get_lex_props=get_lex_props)
  File "spacy/vocab.pyx", line 42, in spacy.vocab.Vocab.__init__ (spacy/vocab.cpp:2216)
OSError: Directory C:\Users\garrett\Anaconda\envs\py3k\lib\site-packages\spacy\en\data\vocab not found -- cannot load Vocab.

我想是因为我做不到 运行 python -m spacy.en.download

谁能告诉我 python -m spacy.en.download 应该做什么?

任何人都可以提供如何在 anaconda 环境中安装 spaCy 的演练吗?

这是设置目录、激活 python env、运行ning 命令后出现的错误。前几次我尝试时,我的 spyder 编辑器没有响应,我杀死了控制台,最近一次我得到这个错误

$ cd C:\Users\garrett\Anaconda\envs\py3k\Lib\site-packages
$ C:\Users\garrett\Anaconda\envs\py3k\Lib\site-packages>activate py3k
$ [py3k] C:\Users\garrett\Anaconda\envs\py3k\Lib\site-packages>python -m spacy.en.download

Moving existing dir C:\Users\garrett\Anaconda\envs\py3k\Lib\site-packages\spacy\en\data to /tmp
Traceback (most recent call last):
  File "C:\Users\garrett\Anaconda\envs\py3k\lib\runpy.py", line 160, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "C:\Users\garrett\Anaconda\envs\py3k\lib\runpy.py", line 73, in _run_code
    exec(code, run_globals)
  File ".\spacy\en\download.py", line 56, in <module>
    plac.call(main)
  File ".\plac_core.py", line 309, in call
    cmd, result = parser_from(obj).consume(arglist)
  File ".\plac_core.py", line 195, in consume
    return cmd, self.func(*(args + varargs + extraopts), **kwargs)
  File ".\spacy\en\download.py", line 51, in main
    shutil.move(DEST_DIR, '/tmp')
  File "C:\Users\garrett\Anaconda\envs\py3k\lib\shutil.py", line 521, in move
    raise Error("Destination path '%s' already exists" % real_dst)
shutil.Error: Destination path '/tmp\data' already exists

感谢您提供的任何帮助或建议

您点击了this bug,应该已经在上一个版本中修复了。显然 spacy 无法下载数据,因为目的地已经存在(可能来自之前中断的下载)。解决方法是删除 /temp/data 文件夹并重试下载。