如何使用xgboost使用pyinstaller和代码创建.exe

时间:2019-04-03 14:18:05

标签: python pyinstaller xgboost

我正在使用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 :(得分:0)

经过研究:

用于从使用xgboost库的脚本中使用pyinstaller制作exe:

1。首先必须抓住“ xgboost.dll”并将其插入dist文件夹中的文件夹名称“ xgboost”中-链接:[http://www.picnet.com.au/blogs/guido/2016/09/22/xgboost-windows-x64-binaries-for-download/][1]

  1. 请使用下面的代码获取所需的隐藏导入(在xgboost情况下,数据和二进制文件应为空)
    from PyInstaller.utils.hooks import collect_all datas, binaries, hiddenimports = collect_all("xgboost") 并将其添加到.spec文件。

祝你好运