我正在使用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。
答案 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]
from PyInstaller.utils.hooks import collect_all
datas, binaries, hiddenimports = collect_all("xgboost")
并将其添加到.spec文件。祝你好运