nltk-hook无法找到nltk_data

时间:2019-02-12 22:14:08

标签: python nltk hook pyinstaller

使用pyinstaller构建可执行文件时,我得到

  

无法找到/ home / usr / nltk_data

添加二进制文件和数据文件时。

我已经尝试了互联网上几乎所有的解决方案

2 个答案:

答案 0 :(得分:1)

将hook-nltk.py文件更改为此

import os
import nltk
from PyInstaller.utils.hooks import collect_data_files
# add datas for nltk
datas = collect_data_files('nltk', False)

# loop through the data directories and add them
for p in nltk.data.path:
    if os.path.exists(p):
        datas.append((p, "nltk_data"))

# nltk.chunk.named_entity should be included
hiddenimports = ["nltk.chunk.named_entity"]

和 更改以删除文件“ pyi_rth_nltk.py”而不是“ pyi_rth__nltk.py”的双倍空格。此文件可以位于\ Anaconda3 \ Lib \ site-packages \ PyInstaller \ loader \ rthooks

答案 1 :(得分:1)

我解决了编辑pyinstaller nltk-hook(在python3内)的问题。经过大量研究,我决定在代码结构中单独进行研究。我通过评论以下行解决了我的问题: datas=[]

'''for p in nltk.data.path: datas.append((p, "nltk_data"))'''

hiddenimports = ["nltk.chunk.named_entity"]

此外,您需要重命名文件:pyi_rth__nltk.cpython-36.pyc到pyi_rth_nltk.cpython-36.pyc此文件还有1个下划线。使用python版本发出警告。