【问题标题】:What directory does chaquopy code search for the Python packages which are imported in the Python code of the Android app codechaquopy代码在什么目录下搜索Android app代码的Python代码中导入的Python包
【发布时间】:2018-06-18 09:35:19
【问题描述】:

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

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

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

这是我在@mhsmith 实施解决方案后遇到的错误

这是我的代码的 sn-p

【问题讨论】:

    标签: python nltk chaquopy


    【解决方案1】:

    Chaquopy 4.0.0 及更新版本

    这些版本将HOME 环境变量设置为您应用程序的文件目录,nltk 将自动在那里创建一个nltk_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 documentation 看来,您必须将NLTK_DATA environment variable 设置为此目录。这应该在你import nltk之前之前完成。

    【讨论】:

    • 我已在上述问题的以下答案中插入了代码的 sn-ps。请澄清问题
    • @utkarshverma 如果您的应用基于“hello”示例,我猜您使用的是 Chaquopy 3.1.0。请编辑您的 build.gradle 以升级到版本 3.2.0。
    • 我已经编辑了有疑问的问题。此外,如果应用程序在移动设备上运行,我还有一个疑问,即在系统中设置环境变量会做什么。我的意思是,如果我在系统中设置download_dir路径如sn -p所示,就会出现目录不存在的错误
    • 该应用程序给出了一些新的错误,如编辑中所附。任何帮助都会很棒
    • @utkarshverma 我在答案中添加了一个链接,解释如何设置环境变量。这可能应该在您import nltk之前完成。
    猜你喜欢
    • 1970-01-01
    • 2021-09-10
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    相关资源
    最近更新 更多