Я использую Pyinstaller для упаковки моего пространственного кода на Python. Я использую de_core_news_sm и установил его через pip. Обычный скрипт работает так, как ожидалось, но как только он упакован с pyinstaller, он не может найти модель [E050] Can't find model 'de_core_news_sm'. It doesn't seem to be a Python package or a valid path to a data directory.
, которую я получил для каждого файла с перехватом:
from PyInstaller.utils.hooks import collect_all
# ----------------------------- blis -----------------------------
data = collect_all('blis')
datas = data[0]
binaries = data[1]
hiddenimports = data[2]
from PyInstaller.utils.hooks import collect_all
# ----------------------------- cymen -----------------------------
data = collect_all('cymem')
datas = data[0]
binaries = data[1]
hiddenimports = data[2]
from PyInstaller.utils.hooks import collect_data_files
datas = collect_data_files("de_core_news_sm")
from PyInstaller.utils.hooks import collect_all
# ----------------------------- preshed -----------------------------
data = collect_all('preshed')
datas = data[0]
binaries = data[1]
hiddenimports = data[2]
from PyInstaller.utils.hooks import collect_all
# ----------------------------- SPACY -----------------------------
data = collect_all('spacy')
datas = data[0]
binaries = data[1]
hiddenimports = data[2]
from PyInstaller.utils.hooks import collect_all
# ----------------------------- thinc -----------------------------
data = collect_all('thinc')
datas = data[0]
binaries = data[1]
hiddenimports = data[2]
и я использую следующую команду pyinstaller:
pyinstaller script.py --hidden-import cmath --hidden-import srsly.msgpack.util
в этом сообщении [1]: Не могу найти SpaCy модель при упаковке с PyInstaller
это решение с добавленными файлами данных из модулей. Итак, как мне изменить свой код в моем файле времени выполнения script.py и как мне изменить файлы ловушек?
Кстати, я использую: spacy 3.0.6, pyinstaller 4.3 и python 3.8.0 в моей виртуальной среде.
Спасибо !
Добавление этого в мои сценарии выполнения решает проблему. Вместо того, чтобы загружать его как модуль, я загружаю свою модель из пути
И файл ловушки для сбора всех данных de_core_news_sm