#python #module #pyinstaller #xgboost
Вопрос:
Я создал новую среду с необходимым модулем импорта conda (включая xgboost), работающим в режиме консоли/spyder5 (python3.7). Структура папок следующая V: Текущая папка
- main.py
- ref_files (с изображением/pickle.data/joblib.dat для функции вызова прогноза в main.py)
При создании pyinstaller exe,приведенные ниже сведения добавляются в файл спецификации [для ref_files]
импорт sys sys.setrecursionlimit(5000)
block_cipher = Нет
added_files = [("Ref_files", "Ref_files")]
a = Analysis(['main.py'],
pathex=['V:\Current_folder'],
binaries=[],
datas=added_files,
hiddenimports=[],
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,
a.binaries,
a.zipfiles,
a.datas,
[],
name='main.py',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True )
Только маринованный огурец.файл dat(из xgboost) загружается для main.py не выполняется из-за «модуль xgbboost не найден».
Пробовал с
1.hidden_files = [('xgboost')]
2.hidden_files = [('env/xgboost_lib_path')]
… также указан путь к файлу dll/ВЕРСИИ.
Не могли бы вы, пожалуйста, подсказать, есть ли какие-либо изменения или исправления в dll/exe модуля xgboost ??
Комментарии:
1. Windows 10, Python3.7,xgboost.__версия__(установка 1.4.0 conda)
Ответ №1:
Finally I have solved the issue of XGBoost module
1. copying xgboost module file from anaconda/ env installation folder to
main_script.py folder
[C:Anaconda3envsnewLibrarymingw-w64bin] :
“VERSION” amp; “xgboost.dll”
2. Include binary file in spec file:
binaries=[('xgboost.dll','Library\mingw-w64\bin\'), ('VERSION', 'xgboost\')],
3. Included “import xgboost.sklearn” in main_scipt.py
Now it is working fine. Pyinstaller single.exe
Similary "sklearn.ensemble.forest module not found" issue is resolved by incorporating
the below imports module in main script.py as below:
import sklearn
import sklearn.utils._cython_blas
import sklearn.ensemble._forest
import sklearn.neighbors.typedefs
import sklearn.neighbors.quad_tree
import sklearn.tree
import sklearn.tree._utils