我尝试在gcloud应用引擎上部署应用程序,当部署完成并且尝试浏览URL时,出现502服务器错误。日志显示nltk软件包有问题:
[31m>>> import nltk
>>> nltk.download('punkt')
[0m
Searched in:
- '/root/nltk_data'
- '/usr/share/nltk_data'
- '/usr/local/share/nltk_data'
- '/usr/lib/nltk_data'
- '/usr/local/lib/nltk_data'
- '/env/nltk_data'
- '/env/lib/nltk_data'
- ''
我已经在我的app.yaml文件中添加了必要的硬件要求:
service: vapi
runtime: python
env: flex
health_check:
enable_health_check: True
check_interval_sec: 5
timeout_sec: 4
unhealthy_threshold: 2
healthy_threshold: 2
entrypoint: gunicorn -b :$PORT wsgi:app
runtime_config:
python_version: 3.5
resources:
cpu: 2
memory_gb: 8
disk_size_gb: 20
我试图将nltk软件包安装到上面日志中显示的搜索路径之一中。
此外,我还创建了App Engine配置文件:
# appengine_config.py
from google.appengine.ext import vendor
# Add any libraries install in the "lib" folder.
vendor.add(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'lib'))
有什么建议吗?
答案 0 :(得分:1)
您正在将标准环境的文档与灵活环境的文档混在一起。
将依赖项安装到lib
目录中并使用appengine_config.py
文件是specific for the 1st generation standard environment。
对于灵活的环境,您可以使用requirements.txt
文件指定python依赖项,请参见Using Python Libraries:
Python运行时将automatically install所有依赖项 在部署期间在您的
requirements.txt
中声明。
对于非python依赖项或不能通过pip安装的依赖项,可以使用自定义运行时,请参见Up-to-date pip with AppEngine Python flex env?