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

chaquopy代码在哪个目录中搜索Android应用程序代码的Python代码中导入的Python包,python,nltk,chaquopy,Python,Nltk,Chaquopy,我已经在chaquopy Android应用程序的Python代码的主要方法中导入了nltk库。它要求我为我的处理实现nltk.download('punkt')。所以我想知道:代码在哪个目录中查找包,这样我就可以在所需的文件夹中下载包的副本,让代码正常工作 编辑:我实现了@mhsmith提供的解决方案,但是nltk.download('punkt')仍然给出查找错误。 附上截图: 第一行是下载目录,其中nltk.download('punkt')正在下载数据 这就是我在@mhsmith实现解

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

编辑:我实现了@mhsmith提供的解决方案,但是nltk.download('punkt')仍然给出查找错误。 附上截图:

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

这就是我在@mhsmith实现解决方案之后所犯的错误

这是我的代码片段


Chaquopy 4.0.0及更新版本

这些版本将
HOME
环境变量设置为应用程序的文件目录,nltk将自动在那里创建一个子目录
nltk\u data
。因此,不需要采取特别行动


Chaquopy 3.3.2及以上版本

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

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\u数据设置到此目录。这可能应该在您导入nltk之前完成。我已经在下面对上述问题的回答中插入了代码片段。请澄清问题issue@utkarshverma如果您的应用程序基于“hello”示例,我猜您使用的是Chaquopy 3.1.0。请编辑build.gradle以升级到3.2.0版。我已编辑了带疑问的问题。此外,我还有一个疑问,即如果应用程序在移动设备上运行,在系统中设置环境变量会做什么。我的意思是,如果我在系统中设置了下载目录路径,如代码片段所示,则目录错误不存在。应用程序正在提供一些附加在编辑中的新错误。任何帮助都可能是错误的great@utkarshverma我在回答中添加了一个链接,解释如何设置环境变量。这可能应该在导入nltk之前完成。