【发布时间】:2019-10-06 04:25:34
【问题描述】:
我正在尝试使用来自 Python 的 NLTK 库的词形还原和标记器部署一个谷歌云函数。 NLTK 需要使用 punct 和 wordnet 包下载
import nltk
nltk.download('punct')
nltk.download('wordnet')
因此这些不能在 requirements.txt 文件中指定。在requirement.txt中唯一可以提到的是nltk。
我确实浏览了this similar question,它把我带到了关于specifying dependencies in python 的谷歌文档页面,并按照那里的所有步骤进行操作。
首先我将整个虚拟环境的依赖项移动到一个名为 lib 的目录中
pip install -t lib nltk
然后我在 lib 目录中创建了 __init__.py 文件。并将我所有的导入语句更改为从 lib 导入。但是,当使用 lib 目录中的 nltk 包时,我经常会抛出错误,我认为这是由于相对路径造成的。
Traceback (most recent call last):
File "main.py", line 1, in <module>
from lib.nltk.stem import WordNetLemmatizer
File "/Users/aakashpatel/Documents/resume-compare/lib/nltk/__init__.py", line 99, in <module>
from nltk.internals import config_java
ModuleNotFoundError: No module named 'nltk'
如果我在lib/nltk 文件夹的__init__.py 文件下查看,则有一条导入语句from nltk.internals import config_java 找不到,因为它必须转换为from lib.nltk.internals import config_java。而且我不能直接改变这一点,因为会有很多其他地方简单地提到导入,例如 from nltk 或其他东西。
我该如何解决这个问题?我没有遵循正确部署到 Google Cloud Function 的所有步骤吗?
【问题讨论】:
标签: python google-cloud-platform google-cloud-functions nltk