Python virtual environment error: Module not found error for flask and spacy libraries

Python virtual environment error: Module not found error for flask and spacy libraries

我正在使用 flask 和 spacy 库开发一个 Web 应用程序,我已经使用以下命令为其创建了一个虚拟环境:conda create -n mylgappflaskenv python=3.6 创建了它,然后我使用以下命令激活了我的虚拟环境 activate mylgappflaskenv 然后安装 spacy 和 flask 我依次执行 pip install spacypip install flask 并且它们安装成功。然后我用下面的代码

创建了一个新文件名 app.py
import spacy
nlp = spacy.load("en_core_web_sm")
doc = nlp("Apple is looking at buying U.K. startup for  billion")
for token in doc:
    print(token.text)

在 运行 这个文件上我收到以下错误:

Traceback (most recent call last):
  File "app.py", line 16, in <module>
     import spacy
ImportError: cannot import name 'spacy' 

步数

step1: conda create -n mylgapp2 python=3.6
step2: conda activate mylgapp2
step3: conda install -c conda-forge spacy
step4: python -m spacy download en_core_web_sm --> it gives error
step5: conda install -c anaconda flask

step6: write code: 

import spacy

nlp = spacy.load("en_core_web_sm")
doc = nlp("Apple is looking at buying U.K. startup for  billion")
for token in doc:
    print(token.text)

step 7: conda run app.py

我错过了什么,我该如何解决这个问题

由于您使用的是conda虚拟环境管理器,建议使用conda包安装工具conda来安装库。在您的情况下,最好使用 conda 安装 flask 和 spacy 库;

    $ conda install -c anaconda flask
    $ conda install -c conda-forge spacy
    $ python -m spacy download en_core_web_sm

这些是参考资料flask-anaconda and spacy usage

你的 flask app.py 中是否有一行正在尝试导入 from spacy import spacy 如果是这样我不确定这是一个有效的 spacy 导入。

编辑:运行 python app.py 而不是 conda run app.py

我创建conda环境的步骤;

  • conda create -n myenv python=3.6
  • conda 激活 myenv

这一步还显示了我行中的环境名称

    $ (myenv)

确保您处于正确的虚拟环境后,您可以安装所需的库

    $ (myenv) conda install -c anaconda flask
    $ (myenv) conda install -c conda-forge spacy

安装所有这些库后,确保它们在您的包列表中

    $ (myenv) conda list

如果您在包列表中看到库,那您就可以开始了。

您是否检查过 python 和 pip 可执行文件的路径是您的 conda 环境?即:

$ (myenv) which python
XXXX/XXXXX/anaconda3/envs/myenv/bin/python
$ (myenv) which pip
XXXX/XXXXX/anaconda3/envs/myenv/bin/pip

如果不是这种情况,则可能是路径问题,如果您在激活环境后向 PATH 添加一些内容,就会发生这种情况。