我使用的是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
datas, binaries, hiddenimports = collect_all("xgboost")
exe正在成功创建
但是当我运行.exe文件时,我得到以下屏幕:
PyInstaller cannot check for assembly dependencies.
Please install PyWin32 or pywin32-ctypes.
pip install pypiwin32
无论如何我都有pypiwin32安装。
经过研究:
要从使用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]
from PyInstaller.utils.hooks import collect_all
datas, binaries, hiddenimports = collect_all("xgboost")
并将其添加到.spec文件中。祝好运