pyinstaller打包记录|| 打包成功,含xgboost打包遇到的问题

文章目录

  • 1 requirements.txt
  • 2 项目介绍
  • 3 matplotlib的问题
  • 4 xgboost打包遇到的问题
    • 4.1 解决办法:
  • 5 总结流程
    • 5.1 打开命令行
    • 5.2 键入打包指令
    • 5.3 执行文件
    • 5.4 双击exe运行

1 requirements.txt

python==3.6.15

tensorflow-cpu==2.2.0
netCDF4==1.5.6
Keras==2.3.1
pandas==1.0.3
pyinstaller==4.7
joblib==1.1.0
bottle==0.12.19
scikit-learn==0.21.3
matplotlib==3.2.1

2 项目介绍

现在我的代码名:xgboost_model.py
只需要打包这一个py文件,但是需要import xgboost,这是打包的难点。

3 matplotlib的问题

修改一下依赖包的一个文件,下面是参考博客。

https://blog.csdn.net/weixin_43054437/article/details/124043603

4 xgboost打包遇到的问题

因为代码里面import了xgboost的依赖包,但是在打包的时候打不进去,xgboost.dll 文件找不到。

  • 报错情况如下:
    pyinstaller打包记录|| 打包成功,含xgboost打包遇到的问题_第1张图片
    【缺少xgboost.dll】

4.1 解决办法:

(1) 修改指令:pyinstaller -D xgboost_model.py --add-data=xgboost;xgboost

(2) 在xgboost_model的同级目录下把xgboost的依赖包(从本地环境里面)整体拷贝进去。
我自己电脑上的地址:C:\Users\13004\anaconda3\envs\zjj36\Lib\site-packages\xgboost

(3) 等到生成了exe文件之后,吧xgboost的依赖包再复制一份到exe的同级目录下
pyinstaller打包记录|| 打包成功,含xgboost打包遇到的问题_第2张图片
(4) 复制好了之后,再点exe文件执行就OK了。

5 总结流程

5.1 打开命令行

首先进入到代码py所在目录。

把xgboost的包一整个都拷贝进来。
【xgboost==1.5.2】
去自己的电脑的虚拟环境里面找依赖包,我自己的目录是:C:\Users\13004\anaconda3\envs\zjj36\Lib\site-packages\xgboost

在地址栏敲cmd进入命令行。

pyinstaller打包记录|| 打包成功,含xgboost打包遇到的问题_第3张图片

5.2 键入打包指令

虽然我只是一个py文件,但是用-D的效果会比-F 好很多,省去很多麻烦,就直接-D了。

也建议用-F试试。

pyinstalller -D svm.py --add-data=xgboost;xgboost

pyinstaller打包记录|| 打包成功,含xgboost打包遇到的问题_第4张图片

然后会生成一个build文件夹,dist文件夹,和svm.spec。

5.3 执行文件

进入dist文件夹。

进入两级目录。

找到exe文件,这里会比用-F的方式生成更多的文件。都不用管。

pyinstaller打包记录|| 打包成功,含xgboost打包遇到的问题_第5张图片
在exe的同级目录下,也就是此目录下添加xgboost 文件夹,跟刚刚是一个文件夹。

pyinstaller打包记录|| 打包成功,含xgboost打包遇到的问题_第6张图片

5.4 双击exe运行

如果闪退,可以试试在exe文件夹内,按住shift+鼠标右击

打开powerdshell。

然后输入.\xgboost_model.exe,也就是.\ + [exe文件]

pyinstaller打包记录|| 打包成功,含xgboost打包遇到的问题_第7张图片

pyinstaller打包记录|| 打包成功,含xgboost打包遇到的问题_第8张图片

你可能感兴趣的:(项目训练,python,tensorflow,开发语言)