Как создать .exe с pyinstaller с кодом, используя xgboost - PullRequest
0 голосов
/ 03 апреля 2019

Я использую python 3.6.4, pyinstaller 3.4.Мой код импортирует numpy и xgboost.Я хочу создать .exe из проекта.

Приведенный ниже код в виде ".py" запускается без каких-либо проблем на моем компьютере


import xgboost as xgb

import numpy as np

init()

data = np.random.rand(5,10) # 5 entities, each contains 10 features
label = np.random.randint(2, size=5) # binary target
dtrain = xgb.DMatrix( data, label=label)

dtest = dtrain

param = {'bst:max_depth':2, 'bst:eta':1, 'silent':1, 'objective':'binary:logistic' }
param['nthread'] = 4
param['eval_metric'] = 'auc'

evallist  = [(dtest,'eval'), (dtrain,'train')]

num_round = 10
bst = xgb.train( param, dtrain, num_round, evallist )

bst.dump_model('dump.raw.txt')

при преобразовании в exe

и переход к файлу .spec следующий:

datas, binaries, hiddenimports = collect_all("xgboost")

exe успешно создается

, но когда я запускаю файл .exe, я получаю следующий экран:

PyInstaller cannot check for assembly dependencies.
Please install PyWin32 or pywin32-ctypes.

pip install pypiwin32

в любом случае у меня установлена ​​pypiwin32.

признателен, если кто-нибудь знает, как ее решить?

1 Ответ

0 голосов
/ 26 апреля 2019

После исследования:

Для создания exe-файла с использованием pyinstaller из скрипта, использующего библиотеку xgboost:

1. Один из них должен сначала получить «xgboost.dll» и вставить его вимя папки "xgboost" в папке dist - ссылка: [http://www.picnet.com.au/blogs/guido/2016/09/22/xgboost-windows-x64-binaries-for-download/][1]

используйте приведенный ниже код для получения необходимого скрытого импорта (данные и двоичные файлы должны быть пустыми в случае xgboost)
from PyInstaller.utils.hooks import collect_all datas, binaries, hiddenimports = collect_all("xgboost") и добавьте его в файлы .spec.

удачи

...