Azure Python 部署 - Spacy nomodule 发现异常
Azure Python Deployment - Spacy nomodule found exception
我正在使用 Linux 应用服务。我正在尝试通过 Azure DevOps 管道部署 python 3.6 flask 应用程序。它适用于基本应用程序,但当我添加额外的代码(spacy 模块)时,它开始抛出
2019-12-24T18:07:33.079953940Z __import__(module)
2019-12-24T18:07:33.079961840Z File "/home/site/wwwroot/application.py", line 3, in <module>
2019-12-24T18:07:33.079970340Z from Data_Cleanup_utility.clear_content_utility import ClearContent
2019-12-24T18:07:33.079978440Z File "/home/site/wwwroot/Data_Cleanup_utility/clear_content_utility.py", line 12, in <module>
2019-12-24T18:07:33.079986741Z import spacy
2019-12-24T18:07:33.079994741Z **ModuleNotFoundError: No module named 'spacy'**
2019-12-24T18:07:33.084726683Z [2019-12-24 18:07:33 +0000] [51] [INFO] Worker exiting (pid: 51)
2019-12-24T18:07:33.170423056Z [2019-12-24 18:07:33 +0000] [48] [INFO] Shutting down: Master
2019-12-24T18:07:33.172257711Z [2019-12-24 18:07:33 +0000] [48] [INFO] Reason: Worker failed to boot.
我在requirement.txt
中添加了依赖模块
Flask==1.0.2
Flask-Cors==3.0.8
Flask-RESTful==0.3.7
fastai==1.0.59
numpy==1.17.4
pandas==0.25.3
requests==2.22.0
spacy==2.2.3
spacy-langdetect==0.1.2
和azurepipeline.yml
- script: |
python -m venv antenv
source antenv/bin/activate
python -m pip install --upgrade pip
pip install setup
pip install -r requirements.txt
python -m spacy download es
workingDirectory: $(projectRoot)
displayName: "Install requirements"
和我的代码clear_content_utility.py
import spacy
from spacy_langdetect import LanguageDetector
nlp = spacy.load('es')
nlp.add_pipe(LanguageDetector(), name='language_detector', last=True)
有人遇到过上述问题吗?感谢你的帮助。
这是你应该做的事情:
- 请确保在执行任何代码之前激活虚拟环境,并确保检查您安装的包是否确实在您的 VENV 中。
我建议您创建新的 VENV 并尝试激活它。
其次,您可以将语言数据移至子模块**spacy.lang**
,以保持内容更清晰、更有条理。
例如。而不是使用 spacy.en
,您现在从 spacy.lang.en
导入
python -m spacy download en_core_web_sm
import spacy
nlp = spacy.load("en_core_web_sm")
附加参考:
https://www.pythonanywhere.com/forums/topic/13328/
希望对您有所帮助。
我正在使用 Linux 应用服务。我正在尝试通过 Azure DevOps 管道部署 python 3.6 flask 应用程序。它适用于基本应用程序,但当我添加额外的代码(spacy 模块)时,它开始抛出
2019-12-24T18:07:33.079953940Z __import__(module)
2019-12-24T18:07:33.079961840Z File "/home/site/wwwroot/application.py", line 3, in <module>
2019-12-24T18:07:33.079970340Z from Data_Cleanup_utility.clear_content_utility import ClearContent
2019-12-24T18:07:33.079978440Z File "/home/site/wwwroot/Data_Cleanup_utility/clear_content_utility.py", line 12, in <module>
2019-12-24T18:07:33.079986741Z import spacy
2019-12-24T18:07:33.079994741Z **ModuleNotFoundError: No module named 'spacy'**
2019-12-24T18:07:33.084726683Z [2019-12-24 18:07:33 +0000] [51] [INFO] Worker exiting (pid: 51)
2019-12-24T18:07:33.170423056Z [2019-12-24 18:07:33 +0000] [48] [INFO] Shutting down: Master
2019-12-24T18:07:33.172257711Z [2019-12-24 18:07:33 +0000] [48] [INFO] Reason: Worker failed to boot.
我在requirement.txt
中添加了依赖模块Flask==1.0.2
Flask-Cors==3.0.8
Flask-RESTful==0.3.7
fastai==1.0.59
numpy==1.17.4
pandas==0.25.3
requests==2.22.0
spacy==2.2.3
spacy-langdetect==0.1.2
和azurepipeline.yml
- script: |
python -m venv antenv
source antenv/bin/activate
python -m pip install --upgrade pip
pip install setup
pip install -r requirements.txt
python -m spacy download es
workingDirectory: $(projectRoot)
displayName: "Install requirements"
和我的代码clear_content_utility.py
import spacy
from spacy_langdetect import LanguageDetector
nlp = spacy.load('es')
nlp.add_pipe(LanguageDetector(), name='language_detector', last=True)
有人遇到过上述问题吗?感谢你的帮助。
这是你应该做的事情:
- 请确保在执行任何代码之前激活虚拟环境,并确保检查您安装的包是否确实在您的 VENV 中。
我建议您创建新的 VENV 并尝试激活它。
其次,您可以将语言数据移至子模块
**spacy.lang**
,以保持内容更清晰、更有条理。例如。而不是使用
spacy.en
,您现在从spacy.lang.en
导入
python -m spacy download en_core_web_sm
import spacy
nlp = spacy.load("en_core_web_sm")
附加参考:
https://www.pythonanywhere.com/forums/topic/13328/
希望对您有所帮助。