chaquopy代码搜索在Android应用程序代码的Python代码中导入的Python包的目录

时间:2018-06-18 09:35:20

标签: python nltk chaquopy

我在chaquopy Android应用程序的Python代码的main方法中导入了nltk库。它要求我为我的处理实施nltk.download('punkt')。所以我想知道:代码在哪个目录中查找包,以便我可以在所需的文件夹中下载它们的副本,以便我的代码正常工作?

编辑:我实现了@mhsmith提供的解决方案,但是nltk.download('punkt')仍然提供了Lookup Error。 屏幕截图附有:

第一行是download_dir,其中nltk.download('punkt')正在下载数据

The first line is the download_dir in which nltk.download('punkt') is downloading data

这是我在@mhsmith

实施解决方案后得到的错误

This is the error I am getting even after implementing solution by @mhsmith

这是我的代码片段

This is the snippet of my code

1 个答案:

答案 0 :(得分:0)

Chaquopy 4.0.0及更新

这些版本将HOME环境变量设置为应用程序的文件目录,nltk将自动在那里创建一个nltk_data子目录。所以不需要采取任何特殊行动。

较旧的Chaquopy版本的原始答案

我认为最干净的解决方案是为您的下载创建一个单独的目录,如下所示:

from com.chaquo.python import Python
download_dir = "{}/nltk".format(Python.getPlatform().getApplication().getFilesDir())
if not os.path.exists(download_dir):
    os.mkdir(download_dir)
nltk.download(..., download_dir=download_dir)

getPlatform方法需要Chaquopy 3.2.0或更高版本。)

NLTK documentation开始,您似乎必须将NLTK_DATA environment variable设置为此目录。这可能应该在之前 import nltk完成。