#python #python-3.x #exe #pyinstaller #lightgbm
#python #python-3.x #exe #pyinstaller #lightgbm
Вопрос:
Я пытаюсь преобразовать свой код в exe-файл, используя спецификацию pyinstaller. Я запустил pyinstaller со следующей командой:
pyinstaller --clean --add-data lib_lightgbm.dll;compile orca.spec
exe завершается с ошибкой:
main__.PyInstallerImportError: Failed to load dynlib/dll
'C:\Users\...\lightgbm\../compile\lib_lightgbm.dll'. Most probably this
dynlib/dll was not found when the application was frozen.
Я попытался добавить lightgbm.dll через двоичные файлы, но не сработало. Я также попытался вручную скопировать его в пункт назначения после создания exe. Это тоже не сработало. Большинство вопросов о pyinstaller и lib_lightgbm.dll не удалось ответить на мой вопрос. Может кто-нибудь, пожалуйста, предложить решение? На данный момент я в тупике.
Вот мой файл спецификации:
# -*- mode: python -*-
import sys
sys.setrecursionlimit(5000)
block_cipher = None
a = Analysis(['mycode.py'],
pathex=['C:\mycode\source code'],
binaries=[],
datas=[],
hiddenimports=['cython', 'sklearn', 'sklearn.feature_extraction','sklearn.pipeline', 'sklearn.ensemble', 'sklearn.neighbors.typedefs', 'sklearn.neighbors.quad_tree', 'sklearn.tree._utils'],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
[],
exclude_binaries=True,
name='mycode',
debug=True,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
name='mycode')
Ответ №1:
При сборке из файла спецификации эти параметры не могут быть изменены.
так что либо добавьте кортеж в datas
раздел, либо удалите файл спецификации и используйте все параметры для pyinstaller
Я не уверен на 100%, что это исправление, но в вашем datas
разделе вашего файла спецификации должно быть что-то. Поэтому я бы исследовал это. вы также можете выполнить сборку из файла спецификации, используя pyinstaller <spec file here>
, когда закончите его редактирование.
https://pyinstaller.readthedocs.io/en/stable/spec-files.html