如何使用xbboost使用带有代码的pyinstaller创建.exe

问题描述 投票:0回答:1

我使用的是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

and wiriting to the .spec file the following:

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

exe正在成功创建

但是当我运行.exe文件时,我得到以下屏幕:

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

pip install pypiwin32

无论如何我都有pypiwin32安装。

appreciate if someone knows how to solve it?

python pyinstaller xgboost
1个回答
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文件中。

祝好运

© www.soinside.com 2019 - 2024. All rights reserved.